zoukankan      html  css  js  c++  java
  • Java Thread join() 的用法

    Java Thread中, join() 方法是让调用该方法的主线程执行run()时暂时卡住,等run()执行完成后, 主线程再调用执行join()后面的代码。示例:

    class ThreadTesterA implements Runnable {
    
    	private int counter;
    
    	@Override
    	public void run() {
    		while (counter <= 10) {
    			System.out.print("Counter = " + counter + " ");
    			counter++;
    		}
    		System.out.println();
    	}
    }
    
    class ThreadTesterB implements Runnable {
    
    	private int i;
    
    	@Override
    	public void run() {
    		while (i <= 10) {
    			System.out.print("i = " + i + " ");
    			i++;
    		}
    		System.out.println();
    	}
    }
    
    public class ThreadTester {
    	public static void main(String[] args) throws InterruptedException {
    		Thread t1 = new Thread(new ThreadTesterA());
    		Thread t2 = new Thread(new ThreadTesterB());
    		t1.start();
    		t1.join(); // wait t1 to be finished
    		t2.start();
    		t2.join(); // in this program, this may be removed
    	}
    }

    如果去掉t1.join()这个语句过后, 输出的顺序是乱的, 加上这个语句后, 就会按照顺序输出,  从某种意义上说实现了同步。

    转载自:http://my.oschina.net/u/2338362/blog/516237?p=1

  • 相关阅读:
    pwndbg + gdb8.2 + kali (2018-10-09)爬坑
    关于EOF
    ARM的PC和LR寄存器
    存档,IE漏洞,一直不会分析
    QQProtect.sys漏洞真有意思
    问题
    gapz注入代码
    Spring JdbcTemplate批量操作数据库
    消息中间件MQ基础理论知识
    Spring4.3.1 JDBCTemplate操作数据库
  • 原文地址:https://www.cnblogs.com/lihuidu/p/5806397.html
Copyright © 2011-2022 走看看