1、自旋锁 2、自旋锁的其他种类 3、阻塞锁 4、可重入锁 5、读写锁 6、互斥锁 7、悲观锁 8、乐观锁 9、公平锁 10、非公平锁 11、偏向锁 12、对象锁 13、线程锁 14、锁粗化 15、轻量级锁 16、锁消除 17、锁膨胀 18、信号量 ...
分类:
编程语言 时间:
2017-09-24 15:29:45
阅读次数:
160
线程池 线程池是可以控制线程创建、释放、并通过某种策略尝试复用线程去执行任务的一种管理框架,从而实现线程资源与任务之间的一种平衡。 类图 Executor Executor是最基本的执行接口:“执行者”接口,只提供了一个方法:可以用来执行已经提交的Runnable任务对象,这个接口提供了一种将“任务 ...
分类:
编程语言 时间:
2017-09-23 15:29:14
阅读次数:
199
参考:http://blog.csdn.net/wenhui_/article/details/6889013 重入:重新进入 区别:多个任务能否同时调用一个函数,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象 满足下面条件之一的多数是不可重入函数:(1)使用了静态数 ...
分类:
其他好文 时间:
2017-09-20 14:49:53
阅读次数:
149
线程安全的实现方法。 先来说说几个概念: 1.同步:多线程并发访问共享数据的时候,保证共享数据在同一时刻只能被一个(一些,使用信号量时)线程使用。 2.临界区:每个进程中访问临界资源的那段代码。 3.临界资源:每次仅允许一个进程访问的资源。 4.信号量:相当于一个计数器,每当一个进程使用一个资源,信 ...
分类:
编程语言 时间:
2017-09-18 20:36:42
阅读次数:
159
一.适应ConcurrentHashMap的原因 HashMap存在线程不安全的问题,HashTable效率十分低下,因此,ConcurrentHashMap有了合适的登场机会。 (1)HashTable的线程不安全性 在并发编程环境中,使用HashMap进行put操作会引起死循环,导致CPU利用率 ...
分类:
其他好文 时间:
2017-09-16 20:47:29
阅读次数:
249
前沿: ReentrantLock 是java重入锁一种实现,在java中我们通常使用ReentrantLock 和 synchronized来实现锁功能,本篇通过例子来理解下ReentrantLock使用以及什么是可重入锁。 理解可重入: 1. 锁机制是为了多线程并发访问共享资源情况下为保证线程的 ...
分类:
其他好文 时间:
2017-09-11 19:48:38
阅读次数:
161
Java在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock。 相同点和区别 相同点:这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访 ...
分类:
其他好文 时间:
2017-09-10 11:15:42
阅读次数:
192
线程可以有六种状态: 1.New(新创建) 2.Runnable(可运行)(运行) 3.Blocked(被阻塞) 4.Waiting(等待) 5.Timed waiting(计时等待) 6.Terminated(被终止) 新创建线程: 当用new操作符创建一个新线程时,如new Thread(r), ...
分类:
编程语言 时间:
2017-09-10 10:10:30
阅读次数:
124
Java线程的同步(七中方法):同步方法同步代码块wait和notify方法使用特殊域变量(volatile)使用重入锁使用ThreadLocal使用阻塞队列BlockingQueue使用原子变量实现线程同步AtomicInteger
分类:
编程语言 时间:
2017-09-09 23:18:44
阅读次数:
193
public class SynchronizeRetreenTest extends Thread { int i = 1; public synchronized void doSomething() { while (i < 10) { System.out.println(" " + i); ...
分类:
其他好文 时间:
2017-09-09 15:16:07
阅读次数:
130