java中线程概念描述

豆豆网   技术应用频道   2007年10月29日  【字号: 收藏本文

本文详细介绍java中线程概念描述

  请读者首先运行示例8程序,从运行结果上看:一个线程在sleep的时候,并不会释放这个对象的锁标志。

  四:join()

  示例9:

  publicclassThreadTestimplementsRunnable{
 publicstaticinta=0;
 publicvoidrun(){
  for(intk=0;k<5;k++){
   a=a+1;
  }
 }
 publicstaticvoidmain(String[]args){
  Runnabler=newThreadTest();
  Threadt=newThread(r);
  t.start();
  System.out.println(a);
 }
}

  请问程序的输出结果是5吗?答案是:有可能。其实你很难遇到输出5的时候,通常情况下都不是5。这里不讲解为什么输出结果不是5,我要讲的是:

  怎样才能让输出结果为5!其实很简单,join()方法提供了这种功能。join()方法,它能够使调用该方法的线程在此之前执行完毕。

  把示例9的main()方法该成如下这样:

publicstaticvoidmain(String[]args)throwsException{
 Runnabler=newThreadTest();
 Threadt=newThread(r);
 t.start();
 t.join();
 System.out.println(a);
}

  这时,输出结果肯定是5!join()方法会抛出异常,应该提供捕获代码。或留给JDK捕获。

  示例10:

publicclassThreadTestimplementsRunnable{
 publicvoidrun(){
  for(intk=0;k<10;k++){
   System.out.print(""+k);
  }
 }
 publicstaticvoidmain(String[]args)throwsException{
  Runnabler=newThreadTest();
  Threadt1=newThread(r);
  Threadt2=newThread(r);
  t1.start();
  t1.join();
  t2.start();
 }
}

责编:豆豆技术应用

正在加载评论...