这是我写的,真心觉得写的不好,不过功能实现了,,,,你可以参考下。。。- package test;
- import java.util.concurrent.locks.Condition;
- import java.util.concurrent.locks.Lock;
- import java.util.concurrent.locks.ReentrantLock;
- class TestThreads extends Thread{
- public void run(){
-
- for(int i=0;i<=4;i++)
- {
- TestThread.lock.lock();
- System.out.println("test is operating!");
- try {
- TestThread.condition1.signal();
- TestThread.condition2.await();
-
- TestThread.lock.unlock();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- public class TestThread {
- static Lock lock=new ReentrantLock();
- static Condition condition1=lock.newCondition();
- static Condition condition2=lock.newCondition();
- public static void main(String[] args) throws InterruptedException {
- new TestThreads().start();
- for(int i=0;i<=4;i++){
- lock.lock();
- condition1.await();
- System.out.println("main is operating!");
- condition2.signal();
- lock.unlock();
- }
- }
-
- }
复制代码 |
|