Title

文章分类 -  JUC

摘要:AQS,全称AbstractQuenedSynchronizer,可以理解为抽象的队列同步器。所谓抽象就代表着这个类要被继承和复用,实际上AQS这个类也确实是Java实现多线程并发编程的中必不可少的一个基础类,JUC中许多工具类的内部都继承了AQS,而AQS的底层则广泛的应用了CAS的实现。下面我们 阅读全文
posted @ 2023-03-07 14:28 手中的小黄鸭 阅读(82) 评论(0) 推荐(0)
摘要:解决线程通信和同步的两种方案 Java并发编程需要解决的最大问题就是线程之间如何进行通信和同步,常见的解决方案分为: 消息传递并发模型 共享内存并发模型 在Java中选择的是共享内存并发模型,两种模型之间的区别如下: | | 如何通信 | 如何同步 | | : | : | : | | 消息传递并发模 阅读全文
posted @ 2023-03-07 14:14 手中的小黄鸭 阅读(39) 评论(0) 推荐(0)
摘要:参数一:corePoolSize 线程池核心线程大小 线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会 被销毁,除非设置了allowCoreThreadTimeOut。这里的最小线程数量即是corePoolSize。 参数二:maximumPoolSize 线程池最大线程数量 阅读全文
posted @ 2023-03-02 23:55 手中的小黄鸭 阅读(516) 评论(0) 推荐(0)
摘要:什么是CAS机制 CAS机制是一种数据更新的方式。在具体讲什么是CAS机制之前,我们先来聊下在多线程环境下,对共享变量进行数据更新的两种模式:悲观锁模式和乐观锁模式。 悲观锁更新的方式认为:在更新数据的时候大概率会有其他线程去争夺共享资源,所以悲观锁的做法是:第一个获取资源的线程会将资源锁定起来,其 阅读全文
posted @ 2023-02-18 21:52 手中的小黄鸭 阅读(300) 评论(0) 推荐(0)
摘要:生产者和消费者问题 Synchronized 版 public class Data { private int num=0; public synchronized void increat() throws InterruptedException { while (num!=0){ this. 阅读全文
posted @ 2022-05-23 17:02 手中的小黄鸭 阅读(26) 评论(0) 推荐(0)
摘要:Lock锁 传统 Synchronized public class saleTicket { public static void main(String[] args) { Ticket ticket = new Ticket(); new Thread(() -> { for (int i = 阅读全文
posted @ 2022-05-23 15:07 手中的小黄鸭 阅读(70) 评论(0) 推荐(0)
摘要:并发、并行 并发编程:并发、并行 并发(多线程操作同一个资源) CPU 一核 ,模拟出来多条线程,天下武功,唯快不破,快速交替 并行(多个人一起行走) CPU 多核 ,多个线程可以同时执行;线程池 并发编程的本质:充分利用CPU的资源 线程六个状态 // 新生 NEW, // 运行 RUNNABLE 阅读全文
posted @ 2022-05-23 14:54 手中的小黄鸭 阅读(17) 评论(0) 推荐(0)