
多线程
文章平均质量分 93
DougLiang
知识不像苹果不会越分越少
展开
-
深度解读并发安全集合的原理及源码
本节主要介绍J.U.C包中的几种并发安全集合:ConcurrentHashMap,ConcurrentLinkedQueue,和ConcurrentLinkedDeque。所谓并发安全集合,相对于普通集合来说,能够保证在多线程环境下向集合中添加数据时的线程安全性。主要讲ConcurrentHashMap在实现线程安全性方面对性能和安全性的合理平衡。原创 2024-09-01 09:27:40 · 2569 阅读 · 0 评论 -
深度解析synchronized实现原理
深度解析synchronized实现原理原创 2024-08-28 10:42:47 · 900 阅读 · 0 评论 -
深度剖析阻塞队列的设计原理及实现
队列是一种基本的数据结构,它是一个只允许在一端进行移除操作,在另一边进行插入操作的线性表,允许插入的一端叫队尾,允许移除的一端成为队头。其实阻塞队列在队列的基础上增加了两个操作。支持阻塞插入:在队列满的情况下,会阻塞继续往队列中添加数据的线程,直到队列中有元素被释放。支持阻塞移除:在队列为空的情况下,会阻塞从队列中获取元素的线程,直到队列中添加了新的元素。原创 2024-08-31 10:49:59 · 1060 阅读 · 0 评论 -
J.U.C并发工具集实战及原理分析
在J.U.C里提供了很多的并发控制工具类,这些工具类可以使得线程按照业务的某种约束来执行。本节包含CountDownLatch、Semaphore、CyclicBarrier等工具类。目的是了解他们基本使用、原理及实际应用。原创 2024-08-31 10:46:58 · 854 阅读 · 0 评论 -
线程通信之等待机制
wait()/notify()原创 2024-08-30 09:04:10 · 1385 阅读 · 0 评论 -
并发编程不得不知的工具
ThreadLocal && Fork/Join原创 2024-08-30 08:58:49 · 988 阅读 · 0 评论 -
并发安全性之Lock锁及原理分析
ReentrantReadWriteLock锁有一个问题,如果当前有现成在调用get()方法,那么所有调用add()方法的线程必须等待调用get()方法的线程释放锁之后才能写,也就是说在读的过程中不允许写。而如果get的方法的线程比较多时,会导致写线程一直类阻塞。为解决ReentrantReadWriteLock中的这个潜在的问题,在java8中引入了StampedLock机制,即优化了读写锁的访问,简单的说就是提供了一种乐观锁策略,当有现成调用get方法读取数据时,不会阻塞准备执行写操作的线程。原创 2024-08-29 12:42:44 · 1132 阅读 · 0 评论 -
volatile为什么能解决可见性和有序性问题
volatile为什么能解决可见性和有序性问题原创 2024-08-28 10:32:13 · 1307 阅读 · 0 评论 -
Java线程的实践及原理揭秘
由于单个程序无法让CPU和I/O设备始终处于忙碌状态,所以操作系统允许同时加载多个程序到内存,也就是说可以同时启动多个进程,系统给这些进程分配独立的地址空间,以保证每个进程的地址不会相互干扰。即横向增加服务器,利用多个计算机组成分布式计算机,当然,整个系统的复杂性增加,比如涉及服务治理,服务监控,服务的高可用。线程是操作系统能够运算和调度的最小单元,一个进程可以创建多个线程,每个线程可以并行执行多个任务,并行执行的线程的数量是由CPU的核心数量来决定的。硬件的组成CPU,网卡,带宽,磁盘,内存。原创 2024-08-27 08:59:07 · 960 阅读 · 0 评论