- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 JAVA并发编程之——定时线程池
在JAVA并发编程之线程池的最后我们讲到了创建定时线程池,其实线程池的创建仍旧是使用的ThreadPoolExcutor的构造函数,具体代码如下:public ScheduledThreadPoolExecutor(int corePoolSize) { super(corePoolSize, Integer.MAX_VALUE, 0, NANOSECONDS, new
2017-10-10 19:41:42 3624
原创 JAVA并发编程之——线程池
Executor接口public interface Executor { void execute(Runnable command);}Executor提供了操作Runnable的接口,我们可以直接执行Runnable的方法,也可以创建Thread来执行Runnable,也可以根据实际情况把Runnable放入队列中按顺序执行。ExecutorService接口public inter
2017-10-10 19:39:00 474
原创 JAVA并发编程之——AQS
概述AQS,AbstractQueuedSynchronizer,即队列同步器。它是构建锁或者其他同步组件的基础框架(如ReentrantLock、ReentrantReadWriteLock、Semaphore等)。AQS内部包含一个FIFO的同步等待队列,简单的说,没有成功获锁的线程会在这个队列中等待,这个队列是一个双向链表。在基于AQS构建的同步器中,只能在一个时刻发生阻塞,从而降低上下文切换
2017-10-10 19:32:55 391
原创 JAVA并发编程之——CAS
锁的劣势锁机制存在以下问题: - 在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 - 一个线程持有锁会导致其它所有需要此锁的线程挂起。在挂起和恢复线程等过程中存在着很大的开销,并且通常存在着较长时间的中断。 - 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile变量是一种更轻量级的同步机制(使用这些变量时不会发生上
2017-10-10 19:30:45 314
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人