当前位置:编程学习 > JAVA >>

请教一道JAVA线程方面的问题

本人是JAVA初学者,谢谢大家的帮助!

如下代码:
class ThreadClassA extends Thread{

 public void run()
}

class Test{
public static void main(String [] args)
{
  ThreadClassA a1=new ThreadClassA();
  a1.run();
ThreadClassA a2=new ThreadClassA();
  a2.run();
ThreadClassA a3=new ThreadClassA();
  a3.run();
}}

  请问这段程序一共启动了多少个线程? --------------------编程问答-------------------- 就一个主线程 --------------------编程问答-------------------- "a1.run();" 这不叫启动线程!启动线程要用这样 a1.start();
所以,如楼上所说,除主线程外,没有另外启动线程!
--------------------编程问答-------------------- 你上面的代码分为三步:
1.创建状态
使用new运算符创建一个线程后,该线程仅仅是一个空对象,系统没有分配资源,称该线程处于创建状态(new thread)
2.可运行状态
使用start()方法启动一个线程后,系统为该线程分配了除CPU外的所需资源,使该线程处于可运行状态(Runnable)
3.运行中状态
Java运行系统通过调度选中一个Runnable的线程,使其占有CPU并转为运行中状态(Running).此时,系统真正执行线程的run()方法.
尽管你创建了三个线程,但是就执行一个主线程 --------------------编程问答-------------------- 启动线程的方法是start(),run()方法是不能启动线程的 --------------------编程问答-------------------- 好像你写得代码“{}”都有问题吧 --------------------编程问答-------------------- 创建线程是用start()。不是run()..start方易做图自动调用run方法
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,