您的位置:首页 > 其它

线程(一)--线程控制-join方法

2016-03-02 09:20 316 查看
1.让一个线程等待join线程完成后再执行:

join()

2.让一个线程等待join线程多少毫秒后再执行:

join(longmillis)

3.让一个线程等待join线程多少毫秒多少微秒后再执行:

join(longmillis,intnanos)

4下面的例子:让主线程在加入的线程执行完成后再执行

publicclassMyThreadextendsThread{
publicMyThread(Stringname){
super(name);
}
@Override
	publicvoidrun(){
for(inti=0;i<50;i++){
System.out.println(getName()+""+i);
}
}
}


为了验证问题这个循环输出50次加入线程的名称。

5.在主线程中启动要加入的线程

如果不使用join()方法

publicstaticvoidmain(String[]args){
MyThreadmThread=newMyThread("加入的线程");
mThread.start();
	//	try{
//	mThread.join();
	//}catch(InterruptedExceptione){
	//TODOAuto-generatedcatchblock
//	e.printStackTrace();
//}
	
inti=0;
	System.out.println(Thread.currentThread().getName()+"----"+i++);
	
}


结果会在线程之前会先执行主线程,然后再执行子线程





在主线程中启动要加入的线程

publicstaticvoidmain(String[]args){
MyThreadmThread=newMyThread("加入的线程");
mThread.start();
try{
	mThread.join();
}catch(InterruptedExceptione){
	//TODOAuto-generatedcatchblock
	e.printStackTrace();
}
	
inti=0;
	System.out.println(Thread.currentThread().getName()+"----"+i++);
	
}


如果使用了jion方法又如何呢。看下面





看到主线程是在加入线程执行完成后再执行的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: