
JAVA并发
JAVA道人
我宁愿做错,也不愿什么都不做.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ThreadPoolExcuter的queue测试
ThreadPoolExcuter的queue测试import java.util.concurrent.BlockingQueue;import java.util.concurrent.SynchronousQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class ThreadTest { public static void mai原创 2021-09-25 16:24:43 · 212 阅读 · 0 评论 -
guava的令牌桶
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version> </dependency> filed: public static final int REQUEST..原创 2021-05-06 15:34:08 · 565 阅读 · 0 评论 -
有 3 个独立的线程,一个只会输出 A,一个只会输出 L,一个只会输出 I。 在三个线程同时启动的情况下,请用合理的方式让他们按顺序打印 ALIALI。
private static void m5_1() throws InterruptedException { int i = 0; Thread thread1 = new Thread(new Runnable() { @Override public void run() { while (true) { LockSupport.park(); System.out.println(1); } } }); Thread thre原创 2021-04-23 15:26:40 · 430 阅读 · 0 评论 -
java的lock
/** * 同一个lock,同一把锁 */ Lock lock = new ReentrantLock(); /** * * 串行执行,相当于syn */ public void aaa() { lock.lock(); try { Thread.sleep(3000); } catch (InterruptedException e) { /...原创 2019-10-18 22:23:56 · 235 阅读 · 2 评论 -
ThreadPoolExecutor的构造方法
int corePoolSize, int maximumPoolSize,long keepAliveTime,TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory一般来说,要使用这个构造方法。corePoolSize:核心线程数maximumPoolSize...原创 2019-07-02 16:45:36 · 260 阅读 · 0 评论 -
java并发:volatile关键字
内容学习自:https://www.cnblogs.com/dolphin0520/p/3920373.html计算机缓存一致性每核cpu在执行指令时,都会将数据从主存中读取,然后在自身的高速缓存中操作修改,最后刷新到主存中.但有个问题,如果此时主存有个变量i = 0;两个cpu线程紧挨着先后执行下面的代码;i = i + 1;可能会出现这个情况:线程1和线程 2...原创 2019-07-02 16:27:24 · 153 阅读 · 0 评论 -
java并发:CAS
copare and swap翻译下来就是比较并转换。应用环境:当去修改内存中某个值时,有三个参数条件。V A BV是代表此刻内存地址存值。 A是代表此刻内存地址应该有的值 。 B 是新值,即将要赋予的值。原理:如下代码。public boolean setNew(){ if (v.value == A){ v.value = B ...原创 2019-07-02 16:27:32 · 135 阅读 · 0 评论 -
java并发:AQS独占锁源码详解
说明:AQS是并发包的基石。它有两种模式:独占模式和共享模式。本篇只说独占模式。什么是独占模式?就相当于lock的锁只有一把,一条线程占用,其他线程就得处于BLOCK或者WAIT状态。在AQS里,获取的方法就是:Acquire() public final void acquire(int arg) { if (!tryAcquire(arg) &&a...原创 2019-07-02 16:26:58 · 155 阅读 · 0 评论 -
java并发:LockSupport
一个好用的东西.阻塞和释放线程用的.先看代码: public static void aaa() { System.out.println("阻塞开始"); LockSupport.park(); System.out.println("111"); }park()就是执行线程一直阻塞,111根本不会执行.再看这个代码: public static vo...原创 2019-07-02 16:27:04 · 142 阅读 · 0 评论 -
java并发:线程中断
一共三个方法.Thread.interrupt();//就是尝试中断本线程.将添加中断标志Thread.isInterrupted();//查看本线程的中断标志,代表是否被中断.Thread.static.interrupted();//静态方法,尝试中断本线程,但是中断标志会被清除.看如下两段代码:private void aaa() throws Interrupt...原创 2019-07-02 16:27:12 · 230 阅读 · 0 评论 -
java并发:线程的六种状态
package thread;public class Test { /** * 新创建的线程. */ public void NEW(){ Thread thread = new Thread(); System.out.println(thread.getState());//NEW } /** * 正在运行的线程.但是处理器不一定会执行此线程.它现在可能在争...原创 2019-07-02 16:27:18 · 168 阅读 · 0 评论