java多线程之Join

来源:互联网 发布:centos 6 php7 编辑:程序博客网 时间:2024/05/21 09:36

在java线程的三大特性中,其中有一个特性是有序性。那么这个有序是如何实现的呢?其实实现的方式就是使用JOIN,jion的功能是在当前线程没有走完前,让其它线程都进入等待状态。只有在当前线程走完后,其它线程才能走。这样就产生了有序性。


有序性代码:

class JoinThread extends Thread{@Overridepublic void run() {for (int i = 0; i <10; i++) {System.out.println(Thread.currentThread().getName()+":"+i);}}}public class ThreadJoin {public static void main(String[] args) throws InterruptedException {//多线程之JOIN 有序JoinThread thread1 = new JoinThread();thread1.start();thread1.join();JoinThread thread2 = new JoinThread();thread2.start();thread2.join();JoinThread thread3 = new JoinThread();thread3.start();thread3.join();JoinThread thread4 = new JoinThread();thread4.start();}}
最后得到的结果是:
Thread-0:0Thread-0:1Thread-0:2Thread-0:3Thread-0:4Thread-0:5Thread-0:6Thread-0:7Thread-0:8Thread-0:9Thread-1:0Thread-1:1Thread-1:2Thread-1:3Thread-1:4Thread-1:5Thread-1:6Thread-1:7Thread-1:8Thread-1:9Thread-2:0Thread-2:1Thread-2:2Thread-2:3Thread-2:4Thread-2:5Thread-2:6Thread-2:7Thread-2:8Thread-2:9Thread-3:0Thread-3:1Thread-3:2Thread-3:3Thread-3:4Thread-3:5Thread-3:6Thread-3:7Thread-3:8Thread-3:9

怎么样是不是已经了解了java线程的有序性是如何实现的呢。其实在三大特性里还有两种,分别是原子性和可见性。原子性是关于数据安全问题,而可见性则是对多个线程共享同一个变量能够快速刷新看见。