zoukankan      html  css  js  c++  java
  • 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次执行!
  • 相关阅读:
    Redhat 7使用CentOS 7的Yum网络源
    指定YUM安装包的体系结构或版本
    CURL常用命令
    VIM技巧之去除代码行号并缩进代码
    VIM 中鼠标选择不选中行号
    linux服务器性能优化
    阻塞,非阻塞,同步,异步
    WEB三层架构与MVC
    mvc与三层结构
    Centos环境下Tomcat启动缓慢
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3209967.html
Copyright © 2011-2022 走看看