并发编程学习(四)-线程锁和性能

性能

并发设计的性能消耗:与协调线程相关的(加锁、信号、内存同步),增加上下文的切换,线程的创建和消亡。

  1. 减少锁的竞争

  2. 缩小锁的范围

  3. 减小锁的粒度(让线程减少调用锁的频率)


  1. ReentrantLock

    Lock lock = new ReentrantLock();

    lock.lock();

    try  {....}

    finally

    { lock.unlock();}

  2. 可定时的与可轮询的锁获取模式,有tryLock方法实现,有更完善的错误恢复机制。

  3. 非阻塞算法:一个线程的失败或挂起 不应该影响另一个线程的失败或挂起。

你可能感兴趣的:(并发编程学习(四)-线程锁和性能)