摘要:
1.非阻塞算法 如果在算法中,一个线程的失败或挂起不会导致其他线程也失败或挂起,那么这种算法就称为非阻塞算法。如果这种算法的每个步骤中都存在某个线程能够执行下去,那么这种算法也称为无锁算法。 这种算法利用底层的原子机器指令代替锁来确保数据在并发访问中的一致性。 2.硬件对并发的支持 2.1 CAS( 阅读全文
摘要:
1.Lock(接口) 和 ReentrantLock(实现类) 与内置加锁机制不同的是,Lock提供了一种无条件的、可轮询的、定时的以及可中断的锁获取方式,所有加锁和解锁的方法都是显式的。 ReentrantLock实现了Lock接口,提供和synchronized相同的互斥性和内存可见性。 2.为 阅读全文
摘要:
1.当操作性能受某种特定的资源而收到限制时,通常称该操作为资源密集型的操作 2.与单线程相比,多个线程总会引入一些额外的开销,比如:线程之间的协调(加锁、触发信号、内存同步等),增加的上下文切换,线程的创建与销毁,线程的调度。 上下文切换:操作系统将某个正在运行的线程调度出来,从而使其他线程使用CP 阅读全文