在上面的例子中多次使用到了Thread类的join方法。我想大家可能已经猜出来join方法的功能是什么了。对,join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完。而使用 join方法后,直到这个线程退出,程序才会往下执行。下面的代码演示了join的用法。
1.package mythread;
2.
3.public class JoinThread extends Thread
4.{
5. public static int n = 0;
6.
7. static synchronized void inc()
8. {
9. n++;
10. }
11. public void run()
12. {
13. for (int i = 0; i < 10; i++)
14. try
15. {
16. inc();
17. sleep(3); // 为了使运行结果更随机,延迟3毫秒
18.
19. }
20. catch (Exception e)
21. {
22. }
23. }