并发
大叔的味道
三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。
展开
-
悲观锁和乐观锁
1、悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系 统不会修改数据)。2、乐观锁( Optimistic Locking ) 相对悲观锁而言转载 2017-06-02 14:19:27 · 375 阅读 · 0 评论 -
AtomicInteger线程安全的操作加减
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。下面通过简单的例子对比来看一下 AtomicInteger 的强大的功能class Counter { private volatile int co原创 2017-06-21 16:53:12 · 19396 阅读 · 0 评论 -
学习阻塞队列BlockingQueue
学习阻塞(缓冲)队列BlockingQueue原创 2017-06-21 18:00:22 · 453 阅读 · 0 评论 -
学习CountDownLatch
原文链接:http://www.iteye.com/topic/1002652CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的转载 2017-06-22 14:53:51 · 200 阅读 · 0 评论 -
学习JAVA线程池
一、线程池作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待原创 2017-06-22 15:58:35 · 371 阅读 · 0 评论