java多线程初学者指南:join方法的使用

java多线程初学者指南:join方法的使用

ID:8978246

大小:16.23 KB

页数:2页

时间:2018-04-13

java多线程初学者指南:join方法的使用_第1页
java多线程初学者指南:join方法的使用_第2页
资源描述:

《java多线程初学者指南:join方法的使用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在上面的例子中多次使用到了Thread类的join方法。我想大家可能已经猜出来join方法的功能是什么了。对,join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完。而使用join方法后,直到这个线程退出,程序才会往下执行。下面的代码演示了join的用法。packagemythread;public class JoinThread extends Th

2、read{    public static volatile int n = 0;    public void run()    {        for (int i = 0; i < 10; i++, n++)            try            {                sleep(3);  // 为了使运行结果更随机,延迟3毫秒            }            catch (Exception e)            {            }                                          }    

3、public static void main(String[] args) throws Exception    {        Thread threads[] = new Thread[100];        for (int i = 0; i < threads.length; i++)  // 建立100个线程            threads[i] = new JoinThread();        for (int i = 0; i < threads.length; i++)   // 运行刚才建立的100个线程            threads[i].star

4、t();        if (args.length > 0)              for (int i = 0; i < threads.length; i++)   // 100个线程都执行完后继续                threads[i].join();        System.out.println("n=" + JoinThread.n);    }}   在例程2-8中建立了100个线程,每个线程使静态变量n增加10.如果在这100个线程都执行完后输出n,这个n值应该是1000.   1. 测试1   使用如下的命令运行上面程序:javamythread.Jo

5、inThread   程序的运行结果如下:n=442   这个运行结果可能在不同的运行环境下有一些差异,但一般n不会等于1000.从上面的结果可以肯定,这100个线程并未都执行完就将n输出了。   2. 测试2   使用如下的命令运行上面的代码:   在上面的命令行中有一个参数join,其实在命令行中可以使用任何参数,只要有一个参数就可以,这里使用join,只是为了表明要使用join方法使这100个线程同步执行。   程序的运行结果如下:n=1000   无论在什么样的运行环境下运行上面的命令,都会得到相同的结果:n=1000.这充分说明了这100个线程肯定是都执行完了,因此,n一定会等于10

6、00.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。