它到底是什么作用。

解决方案 »

  1.   

    当然有用 JDA为我们提供了三种,如下:
    join() 等待该线程终止。
    join(long millis) 等待该线程终止的时间最长为 millis 毫秒。
    join(long millis, int nanos) 等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。
    当你想让某个线程优先执行时,可以调用join()让该线程加入先执行,如果要指定时间,可以设置参数
      

  2.   

    我的理解是这样的。如果一个线程调用了join方法,就是说其它线程要等到这个线程执行完,才能执行。
    如果join(3秒),就是说起码给它3秒钟的执行时间。
      

  3.   

    我感觉用的比较的少,一般都是用sleep让他睡上多少ms
      

  4.   

    楼上thinking in java里的说法是:只是像JVM提出建议,并不保证其他线程这时候就不执行。估计只是在抢占CPU上占了些先机而已
      

  5.   

    实际中非常有用,join不一定是针对单线程,可以是线程组
      

  6.   

    我的这个项目虽说不算多大,但是没有看到一处用到join的方法,都是用sleep
      

  7.   

    join是等待线程结束。我在项目中写过服务器线程,在服务器完成后提示给用户“停止完成”四个字,需要阻塞时可以用join
      

  8.   

    join方法:假如你在A线程中调用了B线程的join方法(B.join();),这时B线程继续运行,A线程停止(进入阻塞状态)。等B运行完毕A再继续运行,中途B线程不受影响。这里要注意的是A先成停止的位置就在调用join方法处,后面代码不执行,要等B完了以后再执行。 
    sleep方法和yield方法要做个比较!线程中调用sleep方法后,本线程停止(进入阻塞状态),运行权交给其他线程。而线程中调用yield方法后本线程并不停止,运行权又本线程和优先级不低与本线程的线程来抢(这里要注意并不是优先级低的就一定抢不过优先级高的,优先级高的只是时间片大一些)。
      

  9.   

    当你用多线程分段解析一个大的文本文件,然后想把结果汇总的时候,就可以在主线程中调用其他解析文本文件的线程的join方法,然后对其结果进行汇总,不过现在基本不用这种形式了,基本用future模式进行了替代,你很少会看到直接join的方法了
      

  10.   

    个人觉得join方法没有实际用处。