浅谈Java线程启动与Thread.join()_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 浅谈Java线程启动与Thread.join()

浅谈Java线程启动与Thread.join()

 2013/7/10 3:35:40  edr_  程序员俱乐部  我要评论(0)
  • 摘要:java中线程的启动有两种方式:classTextendsThread{Stringname;publicT(Stringn){name=n;}publicvoidrun(){try{for(inti=0;i<2;i++){System.out.println("-------"+name);}}catch(Exceptione){}}}classT1implementsRunnable{Stringname;publicT1(Stringn){name=n;
  • 标签:thread Java 浅谈 启动 线程
java中线程的启动有两种方式:
class="java">
class T extends Thread{
	String name;
	public T(String n){
		name=n;
	}
	public void run() {
		try {
			for (int i = 0; i < 2; i++) {
				System.out.println("-------"+name);
			}
		} catch (Exception e) {}
	}
}
class T1 implements Runnable{
	String name;
	public T1(String n){
		name=n;
	}
	@Override
	public void run() {
		try {
			for (int i = 0; i < 2; i++) {
				System.out.println("-------"+name);
			}
		} catch (Exception e) {}
	}
}
启动:
public class Join_Thread {
	public static void main(String[] args) {
		T j1=new T("J1");
		j1.start();
		Thread t3=new Thread(new T1("T_Runable"));
		t3.start();
		System.out.println("Thred End!!");
	}
}

java中的join方法:
public class Join_Thread {
	public static void main(String[] args) {
		T j1=new T("J1");
		j1.start();
		try {
			j1.join();
		} catch (Exception e) {}
		T j2=new T("J2");
		j2.start();
		try {
			j2.join();
		} catch (Exception e) {	}
		System.out.println("Join Thred End!!");
	}
}
join();//等待该线程终止。 
join(long millis);//等待该线程终止的时间最长为 millis 毫秒。
join(long millis,int nanos);//等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。

当使用join(long millis)时相当于在主线程中只能等待这么多时间,超过时则继续主线程的函数流程,一直到等到线程苏醒,然后继续线程的运行。
借鉴一个网友的解释:
比如:你准备洗澡,需要准备的步骤,准备好衣服,沐浴的东西及烧水这些事情,由于烧水耗时太长,如果也放在主线程之中,就很浪费资源,所以如果我们另开线程去处理,就会达到很好效果,于是乎在准备好衣服,沐浴的东西之前就去开子线程烧水,烧水的过程中主线程准备好衣服,沐浴的东西,此时就等待水烧好,然后方可痛快的洗澡了!!



发表评论
用户名: 匿名