多线程系列
疯狗挨踢
上帝给了我一根棍子,我不想用它来搅屎。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入解析Java锁机制
https://mp.weixin.qq.com/s/7ONKM3Xer2-HKvA9_ekhlQ转载 2018-11-20 21:20:18 · 191 阅读 · 0 评论 -
多线程 同步容器
同步容器介绍:同步容器主要是解决并发情况下的线程安全问题。给多线程环境装备一个线程安全的对象。线程安全的容器对象:vector , hashable。线程安全容器对象,都是使用synchronized方法实现的。concrrent的包中的容器对象,大多数是使用系统底层技术实现。基于c语言实现的那一套。类似于native。java8中使用CAS。由于博主知识有限,点到为止。自行研究。...原创 2018-11-20 21:41:21 · 219 阅读 · 0 评论 -
ThreadPoolExecutor 线程池 及实例讲解
ThreadPoolExecutor常用线程池:Executor,ExecutorService, Future, Callable, Executors, FixedThreadPool, CachedThreadPool, ScheduledThreadPool, SingleThreadExceutor, ForkJoinPool, WorkStealingPool, Thre...原创 2018-11-21 20:58:46 · 687 阅读 · 0 评论 -
synchronized 关键字详解
synchronized 锁1.锁什么锁对象可能锁的对象包括:this , 临界资源对象 (多线程都能访问到的对象), class 类对象。静态同步方法,锁的是当前类型的类对象。synchronized (使用范围越小越好)代码贴图描述: 程序运行内存示意图:上代码:/** * synchronized关键字 * 锁对象。synchroniz...原创 2018-11-13 21:35:25 · 216 阅读 · 0 评论 -
多线程,生产者消费者模式经典讲解,简单易懂
本模式以一个经典练习为案例:要求1.自定义容器,提供新增元素(add)和获取元素数量(size)方法。2.启动两个线程。线程1向容器中新增10个数据。线程2监听容器元素数量,当容器元素数量为5时,线程2输出信息并终止。案例分析:上代码:/** * wait notify */package concurrent.t02;import java.util....原创 2018-11-14 22:09:37 · 1395 阅读 · 0 评论 -
重入锁ReentrantLock
什么是可重入?可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁。ReentrantLock和synchronized都是可重入锁。一.在讲解之前先介绍一下synchronizedsynchronized是java内置的关键字,获取和释放锁由JVM实现,非常方便。然而synchronize...原创 2018-11-17 21:05:00 · 178 阅读 · 0 评论 -
多线程,生产者消费者模式经典讲解,简单易懂2
本模式以一个经典练习为案例:使用2种锁机制实现生产者和消费者模式要求练习(生产者消费者模式):自定义同步容器,容器容量上限为10。可以在多线程中应用,并保证数据线程安全。使用synchronized同步及wait()和notifyAll() 实现生产者消费者模式逻辑图描述: /** * 生产者消费者 * wait&notify * wait/no...原创 2018-11-17 22:45:32 · 417 阅读 · 0 评论 -
CountDownLatch 门闩 实例详解
CountDownLatch 介绍CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类,可以把它看成是一个计数器,其内部维护着一个count计数,只不过对这个计数器的操作都是原子操作,同时只能有一个线程去操作这个计数器。如果调用对象上的await()方法,调用者就会一直阻塞,直到别人调用countDown方法,将计数减到0,才可以继续执行。C...原创 2018-11-19 20:49:42 · 547 阅读 · 0 评论 -
ThreadLocal 多线程环境使用详解
ThreadLocal 介绍ThreadLocal 就是一个Map。key - > Thread.getCurrentThread()。value - > 线程需要保存的变量。在多线程环境中,相当于各自线程的一个内部map变量。每个Thread线程内部都有一个Map。 Map里面存储线程本地对象(key)和线程的变量副本(value) 但是,Thread内部的Map是由T...原创 2018-11-19 21:51:56 · 507 阅读 · 0 评论
分享