2018年10月7日
摘要: 第一种方式:Lock锁 第二种:synchronized同步方法: 具体代码如下: 阅读全文
posted @ 2018-10-07 13:51 viper. 阅读(123) 评论(0) 推荐(0) 编辑
摘要: package cn.zz; /** * * @author Administrator 饿汉式: class single{private static Single s=new Single(); private Single(){ } public static getInstance(){ 阅读全文
posted @ 2018-10-07 13:22 viper. 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 前两篇的生产者与消费者(多线程)运用的是synchronized进行同步锁的,本次将运用JDK1.5提供的Lock锁。 它 将synchronized替换成了Lock将Object中的wait notify notifyAll替换成了Condition对象, Condition可以被Lock获取, 阅读全文
posted @ 2018-10-07 13:19 viper. 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 如果有多个生产者和多个消费者 像之前那样就会产生安全问题,例如 会打印两个生产者一个消费者 或者一个生产者两个消费者 。 为了防止这种情况的发生(线程醒了没有去判断标记),需要将if()改为while 这样当线程有等待状态被唤醒的时候可以进行循环判断,但是又由于这样会使同一类线程全部阻塞进入等待状态 阅读全文
posted @ 2018-10-07 13:15 viper. 阅读(89) 评论(0) 推荐(0) 编辑
摘要: package cn.zz; //简单的生产者和消费者class Resource { private String name; private int count; private boolean flag = false; public synchronized void Set(String 阅读全文
posted @ 2018-10-07 13:09 viper. 阅读(107) 评论(0) 推荐(0) 编辑