Synchronized
来源:互联网 发布:骷髅头音乐软件 编辑:程序博客网 时间:2024/05/21 10:21
import java.util.*;import java.util.concurrent.*;class Task{private LinkedList<Integer> list = new LinkedList<Integer>();private static int num=0;public synchronized void take(){while(num<=0){try{super.wait() ;}catch(InterruptedException e){e.printStackTrace() ;}}num--;int a=list.remove(0);System.out.println("after "+Thread.currentThread().getName()+" get="+a+" current size="+num);super.notifyAll();//希望唤醒一些等待放入的进程}public synchronized void put(int a){while(num>=10){try{super.wait() ;}catch(InterruptedException e){e.printStackTrace() ;}}num++;list.add(a);System.out.println("after "+Thread.currentThread().getName()+" put="+a+" current size="+num);super.notifyAll();//希望唤醒一些等待取出的进程}};class PutThread implements Runnable{private Task task;private final CyclicBarrier cb;public PutThread(Task task,CyclicBarrier cb){this.task=task;this.cb=cb;}public void run(){this.task.put(1);try {cb.await();}catch (Exception e){}}}class TakeThread implements Runnable{private Task task;private final CyclicBarrier cb;public TakeThread(Task task,CyclicBarrier cb){this.task=task;this.cb=cb;}public void run(){this.task.take();try{cb.await();}catch (Exception e){}}}public class TestSyn{public static void main(String [] args){long start=(new Date()).getTime();Task t=new Task();final long begin=(new Date()).getTime();CyclicBarrier cb =new CyclicBarrier(20000,new Runnable(){public void run(){long end=(new Date()).getTime();System.out.println(end-begin);}});for(int i=0;i<10000;i++){ new Thread(new PutThread(t,cb)).start();}for(int j=0;j<10000;j++){new Thread(new TakeThread(t,cb)).start();}}}
0 0
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- synchronized
- 利用SVM支持向量机对彩色图像进行分割并使用OpenCV进行实现
- hdu1393
- 所见过的类成员变量命名方式
- CSDN优秀博客连接,博客之星连接。
- JSON回调传值
- Synchronized
- HDU 2119 Matrix(二分图最小边覆盖)
- android中音频开发中出现的问题
- poj 1631 Bridging signals
- NSURLCache内存缓存
- Spring MVC生成验证码
- Lock
- HUD 3461 codelock 纯题意解释,不含思想
- oil deposits