• 等待线程的终结


    在某些情况下,我们需要等待线程的终结。例如,我们可能会遇到程序在执行前需要初始化资源。在执行剩下的代码之前,我们需要等待线程完成初始化任务。为达此目的, 我们使用Thread 类的join() 方法。当前线程调用某个线程的这个方法时,它会暂停当前线程,直到被调用线程执行完成。

    DataSourcesLoader.java

    public class DataSourcesLoader implements Runnable {
    
        @Override
        public void run() {
            System.out.println("DataSourcesLoader.run start");
    
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            System.out.println("DataSourcesLoader.run end");
        }
    }
    

    NetworkConnectionsLoader.java
    public class NetworkConnectionsLoader implements Runnable {
    
        @Override
        public void run() {
            System.out.println("NetworkConnectionsLoader.run start");
    
            try {
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            System.out.println("NetworkConnectionsLoader.run end");
        }
    }
    

     Test.java

    public class Test {
        public static void main(String[] args) {
            Thread thread1 = new Thread(new DataSourcesLoader());
            Thread thread2 = new Thread(new NetworkConnectionsLoader());
    
            thread1.start();
            thread2.start();
    
            try {
                thread1.join();
                thread2.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            System.out.println("Test.main");
        }
    }
    

      打印结果

    DataSourcesLoader.run start
    NetworkConnectionsLoader.run start
    NetworkConnectionsLoader.run end
    DataSourcesLoader.run end
    Test.main
    
    Process finished with exit code 0
    

      







  • 相关阅读:
    从boosting谈起
    《人月神话》读书摘记
    Python中input()的使用方法
    Web前端攻击方式及防御措施
    吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
    Mybatis的Mapper文件sql语句中使用常量值或者枚举常量值
    Java依据文件头获取文件类型
    MySQL查询优化
    RabbitMQ学习教程
    SpringBoot2.x.x + Shiro + Redis 前后端分离实现
  • 原文地址:https://www.cnblogs.com/song-wentao/p/7551958.html
Copyright © 2020-2023  润新知