• Java多线程-线程的调度(合并)


    线程的合并的含义就是将几个并行线程的线程合并为一个单线程执行,应用场景是当一个线程必须等待另一个线程执行完毕才能执行时可以使用join方法。

    join为非静态方法,定义如下:
    void join(): 等待该线程终止。
    void join(long millis): 等待该线程终止的时间最长为 millis 毫秒。
    void join(long millis, int nanos): 等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。

    package cn.thread;
    
    /**
     * 线程的调度(合并)
     * 
     * @author 林计钦
     * @version 1.0 2013-7-24 上午09:49:47
     */
    public class ThreadJoin {
        public static void main(String[] args) {
            ThreadJoin join = new ThreadJoin();
            Thread t1 = join.new MyThread1();
            t1.start();
    
            for (int i = 0; i < 20; i++) {
                System.out.println("主线程第" + i + "次执行!");
                if (i > 2)
                    try {
                        // t1线程合并到主线程中,主线程停止执行过程,转而执行t1线程,直到t1执行完毕后继续。
                        t1.join();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
            }
        }
    
        class MyThread1 extends Thread {
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println("线程1第" + i + "次执行!");
                }
            }
        }
    }
    主线程第0次执行!
    主线程第1次执行!
    主线程第2次执行!
    主线程第3次执行!
    线程1第0次执行!
    线程1第1次执行!
    线程1第2次执行!
    线程1第3次执行!
    线程1第4次执行!
    线程1第5次执行!
    线程1第6次执行!
    线程1第7次执行!
    线程1第8次执行!
    线程1第9次执行!
    主线程第4次执行!
    主线程第5次执行!
    主线程第6次执行!
    主线程第7次执行!
    主线程第8次执行!
    主线程第9次执行!
    主线程第10次执行!
    主线程第11次执行!
    主线程第12次执行!
    主线程第13次执行!
    主线程第14次执行!
    主线程第15次执行!
    主线程第16次执行!
    主线程第17次执行!
    主线程第18次执行!
    主线程第19次执行!
  • 相关阅读:
    树莓派4B-安装docker
    树莓派4B-挂载硬盘
    树莓派4B-修改软件源
    树莓派4B-初始化网络-静态ip
    树莓派4B-下载系统
    爬虫之路: 字体反扒升级版
    annotations导入报错
    [转]微信小程序全局分享转发控制实现——从此无需页面单独配置
    ollydbg 条件断点语法格式
    c++ CreateThread传递char*参数乱码解决办法
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3209967.html
Copyright © 2020-2023  润新知