并发编程
Ops_zz
这个作者很懒,什么都没留下…
展开
-
避免活跃性危险
安全性与活跃性之间通常存在着某种制衡: 我们平时使用加锁机制来确保线程安全,但如果过量地使用加锁,则可能导致锁顺序死锁。 同样,我们使用线程池和信号量来限制对资源的使用,但这些被限制的行为可能导致资源死锁。 一、死锁 经典的“哲学家进餐”问题很好地描述了死锁状况。 5个哲学家围坐在一个圆桌上,每两个哲学家之间都有一只筷子,哲学家平时进行思考,只有当他们饥饿时,才拿起筷子吃饭。规定每个哲学...原创 2019-01-15 15:17:04 · 174 阅读 · 0 评论 -
队列+线程池消费导致ConcurrentModificationException
@Autowired PieceSearchDao pieceSearchDao; public void getInfoFromIntopieces() { try{ List<IntopieceByEagleDTO> list = pieceSearchDao.queryForInsert(); E...原创 2019-01-15 15:26:09 · 361 阅读 · 0 评论 -
Java线程安全特性与问题
0 前言 在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个 共享、可变资源 的情况,这种资源可以是:一个变量、一个对象、一个文件等。特别注意两点: 共享: 意味着该资源可以由多个线程同时访问; 可变: 意味着该资源可以在其生命周期内被修改; 简单的说,如果你的代码在单线程下执行和在多线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。那么,当进行多...转载 2019-01-15 15:33:01 · 544 阅读 · 0 评论