java线程start怎么用
在Java中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡,通过调用Thread类的start()方法来启动一个线程,在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态,当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态,在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态,线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码 。
(图片来源网络,侵删)
下面是一个简单的例子:
public class MyThread extends Thread { public void run(){ for(int i=0;i<5;i++){ System.out.println(Thread.currentThread().getId()+" "+i); } } public static void main(String[] args){ MyThread t1 = new MyThread(); t1.start(); MyThread t2 = new MyThread(); t2.start(); } }
在这个例子中,我们创建了两个MyThread对象并分别调用了它们的start()方法,这两个对象都会被分配到JVM中的不同位置执行run()方法,输出结果如下:
1 0 2 1 3 2 4 3 0 4