怎么实现一个线程执行完后,另一个线程接着执行
1个回答
展开全部
可以用join()方法,楼主试试下面的例子,看看是不是你想要的:
public static class T extends Thread{
private final String name;
public T(String name){
this.name = name;
}
@Override
public void run() {
super.run();
for(int i=0; i<1000; i++)
System.err.println(name + "\t" + i);
}
}
public static void main(String[] args) throws Exception{
T t = new T("t1");
T t2 = new T("t2");
t.start();
t.join();
t2.start();
}
如果线程在该时间片内完成,线程就结束了,如果未完成,系统会将该线程放入就绪队列,等待下CPU再度调度运行它,而且是接着上次执行的状态接着执行,如果是从头开始的话,那前面的执行不都是在浪费时间,又何须时间片的概念,还不如让该线程一次执行完,你说是不是,开动你的大脑,其实思想很简单。
public static class T extends Thread{
private final String name;
public T(String name){
this.name = name;
}
@Override
public void run() {
super.run();
for(int i=0; i<1000; i++)
System.err.println(name + "\t" + i);
}
}
public static void main(String[] args) throws Exception{
T t = new T("t1");
T t2 = new T("t2");
t.start();
t.join();
t2.start();
}
如果线程在该时间片内完成,线程就结束了,如果未完成,系统会将该线程放入就绪队列,等待下CPU再度调度运行它,而且是接着上次执行的状态接着执行,如果是从头开始的话,那前面的执行不都是在浪费时间,又何须时间片的概念,还不如让该线程一次执行完,你说是不是,开动你的大脑,其实思想很简单。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询