连接线程
如果你需要在一个线程中等待另一个线程的死亡你可以对希望结束的线程调用join()方法不带参数调用join()方法将暂停当前线程只要指定线程结束
threadljoin() //suspend the current thread until threadl dies
你也可以传递一个long值给join()方法去指定你打算等待线程死亡的时间的毫秒数
threadljoin(); //wait up to second for threadl to die
线程调度
线程的调度依赖你的操作系统但当其他线程睡眠时就是说当他们调用它们的sleep()力一法时每个线程当然会获得机会如果你的操作系统使用抢占多仟务处理就像Windows 一样程序将在run()方法中没调用sleep()的情况下上作(如果你删除了sleep()调用你也应该删除try和catch块)尽管如此如果你的操作系统不按这种方式进行时序安排在run()中不调sleep() first线程将独占处理器并将无限她继续执行下图举例说明通过调用sleep()方法的四个线程如何分享处理器的时间去放弃控制
注意在Tread类中定义了另一个yield()方法它给其他线程执行的机会如果其他线程在等待但你不想在指定时间内将当前执行线程挂起你只想允许其他线程短衡访问这时你可以使用该方法但当你对一个线程调用sleep()方法虽然没有其他线程在等线程不会用参数指定的时间段来持续工作另一方面如果没有线程在等调用yield()方法将导致当前线程立即重新占用
[] [] [] [] [] [] [] []