- //不用读写互斥的情况
- import java.util.Random;
- public class WriteReadLocktest1 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- final Queue1 q3 = new Queue1();
- for(int i =0 ;i<3;i++)
- { new Thread()
- {
- public void run(){
- while(true)
- {
- q3.put(new Random().nextInt(1000));
- }
- }}.start();
- new Thread()
- {
- public void run(){
- while(true)
- {
- q3.get();
- }
- }}.start();
- }}
- }
- class Queue1{
- private Object data =null;
- public void put(Object data){
- System.out.println(Thread.currentThread().getName()+"is ready to put data");
- try {
- Thread.sleep((long)(Math.random()*1000));
- this.data = data;
- System.out.println(Thread.currentThread().getName()+"has put the data :"+data);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- void get(){
- System.out.println(Thread.currentThread().getName()+"is ready to read data!");
- try {
- Thread.sleep((long)(Math.random()*1000));
- System.out.println(Thread.currentThread().getName()+"has read the data: "+data);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/2101201614474.html
来源: http://www.codesnippet.cn/detail/2101201614474.html