目录
情景:循环创建一类线程,这类线程的run()方法不能立即结束,如包含循环等。
问题:创建线程后,启动线程时,使用run()方法则需要等待线程的run()方法先结束,否则阻塞;使用start()方法启动线程,则立即开始创建下一个线程。
情景:循环创建一类线程,这类线程的run()方法不能立即结束,如包含循环等。
问题:创建线程后,启动线程时,使用run()方法则需要等待线程的run()方法先结束,否则阻塞;使用start()方法启动线程,则立即开始创建下一个线程。
测试代码及结果如下:
package thread_test;
class Thread_test extends Thread{//线程类
@Override
public void run() {
while(true);//线程的功能函数中含有死循环
}
}
public class For_Thread {
public static void main(String[] args) {
for(int i=0;i<4;i++) {//使用循环创建线程
Thread_test t = new Thread_test();
t.start();//使用start()方法,不会阻塞
System.out.println(i);
}
}
}
package thread_test;
class Thread_test extends Thread{//线程类
@Override
public void run() {
while(true);//线程功能函数中存在不能立即结束的循环
}
}
public class For_Thread {
public static void main(String[] args) {
for(int i=0;i<4;i++) {//循环创建线程
Thread_test t = new Thread_test();
t.run();//使用run()方法会阻塞
System.out.println(i);
}
}
}
当线程的run()函数可以立即结束时,启动线程时,使用run()方法可以立即结束