Java控制3个线程顺序执行2次
2014-11-12 15:32
447 查看
1、Demo
package com.fedomn.demo;import java.util.concurrent.Semaphore;
public class semDemo{
public static void main(String[] args) {
final Semaphore semA = new Semaphore(1);
final Semaphore semB = new Semaphore(1);
final Semaphore semC = new Semaphore(1);
Thread T1 = new Thread(new Runnable() {
public void run() {
for(int i=0;i<2;i++){
try {
semA.acquire();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("A thread !");
semB.release();
}
}
});
Thread T2 = new Thread(new Runnable() {
public void run() {
for(int i=0;i<2;i++){
try {
semB.acquire();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("B thread !");
semC.release();
}
}
});
Thread T3 = new Thread(new Runnable() {
public void run() {
for(int i=0;i<2;i++){
try {
semC.acquire();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("C thread !");
semA.release();
}
}
});
try {
semB.acquire();
semC.acquire();
} catch (InterruptedException e) {
e.printStackTrace();
}
T1.start();
T2.start();
T3.start();
}
}
2、输出结果
A thread !B thread !
C thread !
A thread !
B thread !
C thread !
相关文章推荐
- java中控制线程间执行顺序的方法
- Java中使用ReentrantLock控制线程执行顺序
- Java--线程的先后执行顺序控制
- java控制线程的执行顺序
- java 中线程执行顺序控制
- java 中线程执行顺序控制
- Java多线程系列四——控制线程执行顺序
- java中线程执行顺序控制
- java 多线程控制线程执行顺序
- java中线程执行顺序控制
- 控制线程顺序执行
- 控制线程顺序执行
- 如何控制线程执行的先后顺序
- gcd 控制线程执行顺序(供参考)
- Java中线程顺序执行
- java的join和yield方法处理线程顺序执行
- 控制线程顺序循环输出ABC (java Condition 代码简洁版)
- java利用CountDownLatch来制定线程执行顺序
- Javaの线程之多线程执行顺序
- 使用 CountDownLatch 控制多个线程执行顺序