欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java多线程join方法实例代码

程序员文章站 2024-01-27 12:56:34
本文研究的主要是java多线程中join方法的使用问题,以下文为具体实例。 thread的非静态方法join()让一个线程b“加入”到另外一个线程a的尾部。在a执行完毕之...

本文研究的主要是java多线程中join方法的使用问题,以下文为具体实例。

thread的非静态方法join()让一个线程b“加入”到另外一个线程a的尾部。在a执行完毕之前,b不能工作。例如:

thread t = new mythread();
t.start();
t.join();

另外,join()方法还有带超时限制的重载版本。 例如t.join(5000);则让线程等待5000毫秒,如果超过这个时间,则停止等待,变为可运行状态。

线程的加入join()对线程栈导致的结果是线程栈发生了变化,当然这些变化都是瞬时的。

public class testjoin {
	public static void main(string[] args) {
		mythread2 t1 = new mythread2("testjoin");
		t1.start();
		try {
			t1.join();
			//join()合并线程,子线程运行完之后,主线程才开始执行
		}
		catch (interruptedexception e) {
		}
		for (int i=0 ; i <10; i++)
		system.out.println("i am main thread");
	}
}
class mythread2 extends thread {
	mythread2(string s) {
		super(s);
	}
	public void run() {
		for (int i = 1; i <= 10; i++) {
			system.out.println("i am "+getname());
			try {
				sleep(1000);
				//暂停,每一秒输出一次
			}
			catch (interruptedexception e) {
				return;
			}
		}
	}
}

程序运行结果:

i am testjoin
i am testjoin
i am testjoin
i am testjoin
i am testjoin
i am testjoin
i am testjoin
i am testjoin
i am testjoin
i am testjoin
i am main thread
i am main thread
i am main thread
i am main thread
i am main thread
i am main thread
i am main thread
i am main thread
i am main thread
i am main thread

总结

以上就是本文关于java多线程join方法实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!