线程(JAVA)
线程(JAVA)
tellmeyesorno
编程,一定要培养兴趣,若是只为了工作,那么真的太浪费时间了,一直循规蹈矩的重复,而兴趣,则可以即兴而学,可以给生活增加各种色彩!
展开
-
AQS介绍
文章目录1.AQS2.ReentrantLock3.其他1.AQSAQS(AbstractQueuedSynchronizer)队列同步器是用来构建锁、同步组件的基础框架。AQS内部通过一个volatile int类型的成员变量state控制同步状态【0代表锁未被占用,1表示已占用】,通过内部类Node构成FIFO的同步队列实现等待获取锁的线程排队工作,通过内部类ConditionObj...原创 2020-05-04 18:25:42 · 230 阅读 · 0 评论 -
CAS介绍
文章目录1.举例2.CAS2.1 介绍2.2 机制2.3 代码分析2.4 缺点3.其他参考1.举例启动5个线程,每个线程执行1000遍相加操作,若没有并发控制,那么普通自增统计就会有错@Slf4jpublic class CasDemo{ public static void main(String[] args) throws InterruptedException { ...原创 2020-05-04 15:32:32 · 246 阅读 · 0 评论 -
Synchronized原理总结
文章目录1.介绍2.举例说明2.1 同步问题2.1.1 未加锁同步2.1.2 加锁同步2.2 字节码查看2.3 JVM层次查看2.3.1 工具导入2.3.2 对象结构打印3.锁升级过程4.其他4.1 HotSpot1.介绍平时对Synchronized底层一些学习和整理,供后续查看使用参考:深入分析Synchronized原理synchronized原理2.举例说明2.1 同步问题2...原创 2020-05-03 21:43:29 · 243 阅读 · 0 评论 -
线程创建几种方式
文章目录创建方式1.继承Thread类2.实现Runnable接口3.匿名内部类4.实现Callabe接口5.定时器Timer6.线程池6.1 线程池工具6.2 线程池自定义7.并行计算8.spring创建方式主要记录一下线程创建的一些方式,后面可以根据不同的需求进行创建。参考:死磕 java线程系列之创建线程的8种方式通过继承Thread类或实现Runnable,Callable接口都...原创 2020-05-01 18:04:46 · 216 阅读 · 0 评论 -
JUC常用工具类
文章目录1.JUC1.1 CountDownLatch1.1.1 介绍1.1.2 举例1.1.3 注意1.2 CyclicBarrier1.2.1 介绍1.2.2 举例1.2.3 注意1.3 Semaphore1.3.1 介绍1.3.2 举例1.3.3 注意1.4 Exchanger1.4.1 介绍1.4.2 举例参考1.JUCJUC就是java.util .concurrent工具包的简称。...原创 2020-04-04 18:38:46 · 2563 阅读 · 0 评论 -
CountDownLatch
文章目录1.介绍2.代码举例1.介绍相比使用join方法来实现线程间同步,CountDownLatch 更具有灵活性和方便性。另外CountDownLatch的原理,CountDownLatch是使用AQS实现的。使用AQS的状态变量来存放计数器的值。首先在初始化CountDownLatch时设置状态值(计数器值),当多个线程调用countdown方法时实际是原子性递减AQS的状态值。当线程...原创 2019-08-11 19:34:58 · 102 阅读 · 0 评论 -
阻塞队列和非阻塞队列(JAVA)
文章目录1.阻塞队列1.1 代码举例1.2 LinkedBlockingQueue2.非阻塞队列2.1 代码举例2.2 ConcurrentLinkedQueue1.阻塞队列1.1 代码举例1个生产者,队列元素大小为2,三个消费者消费public class TestQueue { private int queueSize = 2; private BlockingQue...原创 2019-08-11 16:36:43 · 4588 阅读 · 0 评论 -
线程池(JAVA)
文章目录1.ThreadPoolExecutor1.1 线程池的好处1.2 构造参数介绍1.3 测试举例1.3.1 线程存活验证1.3.2 策略验证2.Executors1.ThreadPoolExecutor1.1 线程池的好处1.减少线程的创建和销毁耗时,提高线程处理响应2.通过设置线程数目,提高线程的可控性,防止资源不足1.2 构造参数介绍 //JDK1.7 public...原创 2019-08-10 16:11:55 · 208 阅读 · 0 评论 -
JAVA线程
文章目录线程一.线程与进程二.多线程优势三.线程创建方式1.继承Thread2.实现Runnable四.线程生命周期五.线程控制线程一.线程与进程1.操作系统可以执行多个任务,每个任务通常就是一个程序,运行着的程序就是一个进程,进程中可能包含多个顺序执行流,每个顺序执行流就是一个线程2.进程是系统进行资源分配和调度的一个独立单位3.进程主要三个特性:独立性:进程都拥有自己私有的地址空间...原创 2018-12-21 20:50:40 · 190 阅读 · 0 评论 -
线程安全问题举例
文章目录1.安全问题举例1.1 多个线程操作一个对象,一个对象操作一个资源1.2 多个线程操作多个对象,多个对象操作一个资源2.同步2.1 同步块2.2 同步方法2.3 同步锁2.3.1 可重入锁ReentrantLock1.安全问题举例1.1 多个线程操作一个对象,一个对象操作一个资源public class MyNumber { private Integer num; ...原创 2019-05-01 15:25:15 · 582 阅读 · 0 评论 -
Future以及多线程
文章目录1.Future1.1 举例2.线程池2.1 ThreadPoolExecutor1.Future线程有返回值1.1 举例比如做饭,三菜一汤和饭,那么我们可以做菜的时候,先把饭做起来,等菜做好了,饭也好了,就可以吃饭了public class MyFuture { public static void main(String[] args) throws Exe...原创 2019-05-04 14:55:54 · 334 阅读 · 1 评论