多线程
森林公园
这个作者很懒,什么都没留下…
展开
-
Java中的多线程与锁(四)(队列同步器)
0. 先来分析下以共享模式获取以及释放锁的两个方法,即 boolean releaseShared(int arg) 和 void acquireShared(int arg) 先看 acquireShared 方法,该方法尝试以共享模式获取锁,其源代码如下: public final void acquireShared(int arg) { if (tryAcquireSh...原创 2019-05-02 18:55:38 · 307 阅读 · 0 评论 -
Java中的多线程与锁(一)(关于同步)
1. 简介 先来引入多线程中可能存在的问题。下面是一个例子:多个线程同时更新计数器 /* * 多个线程同时更新计数器(模拟多线程中可能存在的问题) */ public class Temp_1 { public static void main(String[] args) { // 连续模拟操作 10 次 for(int i = 0;i < 10;i++) { up...原创 2019-04-28 16:32:17 · 357 阅读 · 0 评论 -
Java中的多线程与锁(二)(锁的概念)
1. 关于锁 锁的概念。 锁用来起保护作用,控制对被保护对象的访问。对于一个线程来说,锁有 2 中状态,一种状态 ‘可进入’或‘可通过’,这种状态下锁对该线程没有副作用,线程继续执行,而另一种状态 ‘不可进入’或‘不可通过’,这种状态下,锁对该线程产生了约束,线程可能会立即返回或者进入等待状态,直到某个条件成立,使得该线程可以通过锁,而等待过程中,该线程也可能被外部中断唤醒。 那么怎样理解:一...原创 2019-04-28 16:32:09 · 322 阅读 · 0 评论 -
Java中的多线程与锁(三)(队列同步器)
1. 队列同步器(java.util.concurrent.locks.AbstractQueuedSynchronizer) 队列同步器提供了更改锁状态的最基础的 ‘原子操作’(上一篇文章 Java中的多线程与锁(二) 中有提及) ,所以可以通过使用 队列同步器 来实现自定义的锁组件,这也是设计队列同步器的初衷( java.util.concurrent.locks.AbstractQueue...原创 2019-05-01 22:26:36 · 272 阅读 · 0 评论