![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程
yonge
这个作者很懒,什么都没留下…
展开
-
ReentrantReadWriteLock使用技巧
最近正在学习多线程,有这样的一个场景,假如我们需要在数据库中更新一条数据,并查询更新后的数据,假如我们不对该程序做并发控制,那么很容易出现数据混乱,例如,A线程将数据改成了1,正准备去查询更新后的结果,此时,B线程又去数据库将数据改成了2,那么A线程最后查询回来的数据是2,而不是自己刚改的1,所以我们很有必要加上并发的控制,代码示例如下:package com.yonge.lock;i...2011-12-27 15:50:57 · 103 阅读 · 0 评论 -
ReentrantReadWriteLock使用方法二
package com.yonge.lock;import java.util.Random;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * 需求:多线程操作同一数据,可以多线程同时读数据,只能一个线程修改数据; * @author wb-gaoy * @version $Id: Shar...2011-12-31 16:06:54 · 117 阅读 · 0 评论 -
Semaphore使用方法(三)
package com.yonge.lock;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/** * 需求:模拟一个厕所有3个坑,现在有10个人想上厕所,那么首先会有三个人进去...2012-01-04 16:29:04 · 141 阅读 · 0 评论 -
CyclicBarrier使用方法(四)
package com.yonge.lock;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 需求:模拟三个人一起去秋游的情景,首先三个人预定好在哪个景点集合,...2012-01-04 16:42:36 · 89 阅读 · 0 评论 -
ArrayBlockingQueue的用法(5)
package com.yonge.lock;import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;/** * 需求:一个线程向一个固定大小的队列里面不停地存放数据,另一个线程不停的向这个队列里面取数据, * 当队列满了,还继续存放数据,此时出现阻塞,直到队列有空闲的位置; * ...2012-01-06 12:01:46 · 359 阅读 · 0 评论