zoukankan      html  css  js  c++  java
  • 多线程07.thread-join

    package com.wangwenjun.concurrency.chapter5;
    
    
    public class ThreadJoin3 {
    
        public static void main(String[] args) throws InterruptedException {
            long startTimestamp = System.currentTimeMillis();
            Thread t1 = new Thread(new CaptureRunnable("M1", 10000L));
            Thread t2 = new Thread(new CaptureRunnable("M2", 30000L));
            Thread t3 = new Thread(new CaptureRunnable("M3", 15000L));
    
            t1.start();
            t2.start();
            t3.start();
    
            t1.join();
            t2.join();
            t3.join();
    //join可以将上面三个线程并行执行,但不执行下面的线程,等待上面线程执行后再执行下面的输出
            long endTimestamp = System.currentTimeMillis();
            System.out.printf("Save data begin timestamp is:%s, end timestamp is:%s
    ", startTimestamp, endTimestamp);
        }
    
    }
    
    class CaptureRunnable implements Runnable {
    
        private String machineName;
    
        private long spendTime;
    
        public CaptureRunnable(String machineName, long spendTime) {
            this.machineName = machineName;
            this.spendTime = spendTime;
        }
    
        @Override
        public void run() {
            //do the really capture data.
            try {
                Thread.sleep(spendTime);
                System.out.printf(machineName + " completed data capture at timestamp [%s] and successfully.
    ", System.currentTimeMillis());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    
        public String getResult() {
            return machineName + " finish.";
        }
    }
  • 相关阅读:
    Jackson
    Jackson
    SAX
    SAX
    JDK Tools
    JAXB
    linux系统mysql连接检查脚本
    linux系统ssh远程连接检查脚本
    linux系统带宽监测脚本
    linux系统web日志分析脚本
  • 原文地址:https://www.cnblogs.com/q1359720840/p/10652011.html
Copyright © 2011-2022 走看看