2017年12月11日
摘要: 读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。 只需在读操作时获取读锁,写操作时获取写锁。当写锁被获取时,后续的读写操作都会被阻塞,写锁释放后,所有操作继续执行。 该锁支持重进入。 写锁能够降级成为读锁。 readLock()、writeLock() 阅读全文
posted @ 2017-12-11 22:07 飞奔的菜鸟 阅读(753) 评论(0) 推荐(0) 编辑
摘要: 重入锁ReentrantLock,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。除此之外,该锁还支持获取锁时的公平和非公平性选择。 重进入是指任意线程在获取到锁之后能够再次获取该锁而不会被锁所阻塞。 阅读全文
posted @ 2017-12-11 21:39 飞奔的菜鸟 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 队列同步器 AbstractQueuedSynchronizer,是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量,通过内置的FIFO队列来完成资源获取线程的排队工作。 同步器的主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态。 同步器是实现锁(任意同步组件) 阅读全文
posted @ 2017-12-11 15:56 飞奔的菜鸟 阅读(182) 评论(0) 推荐(0) 编辑
摘要: LOCK接口提供了与synchronized关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。虽然它缺少了(通过synchronized块或方法所提供的)隐式获取和释放锁的便捷性,但是却拥有了获取和释放锁的可操作性、可中断的获取锁以及超时获取锁等多种synchronized关键字所不具备的同 阅读全文
posted @ 2017-12-11 15:10 飞奔的菜鸟 阅读(112) 评论(0) 推荐(0) 编辑