并行和并发 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行。而垃圾收集程序运行在另一个CPU上。 新生代收集器 Serial收集器 Seri ...
分类:
其他好文 时间:
2020-05-16 15:12:56
阅读次数:
71
前言 在并发编程中,如果要想保证共享数据的安全性,我们一般都需要加锁。但是加锁会使得程序效率明显降低。 在java.util.concurrent.atomic包下,JDK中就为我们提供了使用CAS算法的无锁的原子操作类,可以提高并发编程程序的效率。 这些原子操作类的CAS算法都是利用Unsafe提 ...
分类:
其他好文 时间:
2020-05-11 23:29:07
阅读次数:
71
```javaimport java.util.concurrent.atomic.AtomicInteger;/** * @author zerodsLyn * created on 2020/5/10 */public class MultiThreadSerialPrint { private... ...
分类:
编程语言 时间:
2020-05-10 19:38:56
阅读次数:
98
怎么防止死锁? 答: 怎么防止死锁 尽量使用 tryLock(long timeout, TimeUnit unit)的方法(ReentrantLock、ReentrantReadWriteLock),设置超时时间,超时可以退出防止死锁。 尽量使用 Java. util. concurrent 并发 ...
分类:
其他好文 时间:
2020-05-10 15:18:04
阅读次数:
78
AQS:AbstractQuenedSynchronizer抽象的队列式同步器,这个类在java.util.concurrent.locks包下,是JAVA除了自带的synchronized关键字之外的锁机制实现。AQS中维护了一个 volatile int state 变量(代表共享资源)和一个C ...
分类:
其他好文 时间:
2020-05-08 18:04:00
阅读次数:
63
之前谈过高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 ,以及高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) 今天主要介绍concurrent包的内容以及4大并发工具类。 Java并发工具包 1.并发工具类 提供了比synchronize ...
分类:
编程语言 时间:
2020-05-08 10:03:38
阅读次数:
90
package thread; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /** * @d ...
分类:
编程语言 时间:
2020-05-06 21:40:19
阅读次数:
90
最简单的线程池的实现 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolDemo { public static void main(S ...
分类:
编程语言 时间:
2020-05-06 16:41:04
阅读次数:
82
例子: package com.example.demo.thread; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util. ...
分类:
编程语言 时间:
2020-05-06 01:10:33
阅读次数:
70
Java实现锁的方式主要有2种,一是synchronized,二是并发包java.util.concurrent中Lock接口的实现类ReentrantLock。需要知道的是前者是关键字,JVM原生的亲儿子来着的,后者是封装类,未来JVM改进肯定是先改进synchronized关键字。 1.vola ...
分类:
编程语言 时间:
2020-05-03 18:28:44
阅读次数:
78