
并发编程
王婷婷-Smily
这个作者很懒,什么都没留下…
展开
-
跟面试官谈【线程池】
目录What?Why?分类?1. newCachedThreadPool1.1.what?1.2 代码实例1.3 执行结果1.4 源码分析1.5 缺点2.newFixedThreadPool2.1 What?2.2 代码实例2.3 结果2.4 源码分析2.5 缺点3. newScheduledThreadPool3.1 what3.2 代码示例3.3 执行结果3.4 源码分析3.5 缺点4、new...原创 2020-03-15 17:01:46 · 564 阅读 · 1 评论 -
Java 阻塞队列实现【生产者-消费者】
目录阻塞队列What?Why?分类应用阻塞队列What? 当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞;Why?.阻塞队列不用手动控制线程什么时候该被阻塞,什么时候该被唤醒,简化了操作。防止队列容器溢出,防止数据丢失。分类Collection–>Queue–>BlockingQueue–>7个实现类A...原创 2020-03-14 21:17:41 · 810 阅读 · 0 评论 -
【Java并发】剖析volatile实现原理
文章目录来源?是什么?原理?应用?来源? 我们都知道在多个线程并发的情况下,会出现脏数据等,这个时候我们需要加锁,一般想到的是synchronized,但是这个时候重量级的锁,需要线程上下文切换和调度,消耗的成本比较高,这时候引入了轻量级的valatile。是什么? 官方解释:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个...原创 2019-06-13 20:54:14 · 230 阅读 · 8 评论 -
【多线程】Thread和Runnable区别
文章目录线程?实现方式Thread类线程? 线程是进程中独立运行的子任务,比如我们运行的QQMuic.exe的时候,然后就会有很多的子任务,而且不同的子任务可以共同工作,这时候每一个子任务就是一个线程,多个子任务共同工作,就是多线程。使用多线程,很大程度上缩短了用户等待时间,而且使CPU的利用率大幅度的降低。实现方式 多线程的编程方式有两种:一是集成Thread类,另一种是实现Runnab...原创 2019-06-17 15:13:43 · 18548 阅读 · 18 评论 -
【多线程】run和start的区别
文章目录概述代码示例概述Start()是启动一个新的线程,然后新的线程会调用run()方法,但是start()方法不可以重复调用,若会出现异常Exception in Thread “main” java.lang.IllegalThreadStateException.而且启动线程,会出现异步的效果,即线程创建和启动是随机的run()方法类似一个一个普通方法,如果单独调用,仅仅会在当前线...原创 2019-06-17 15:36:37 · 799 阅读 · 7 评论 -
【多线程】Thread.currentThread()和This的区别
文章目录缘由分析结果缘由 很多人认为多线程中的Thread.currentThread()和this都是显示当前线程的意思,其实不然,他们两个代表不同的意思,下面用一个小例子说明一下。package currentThreadAndThis;public class MyThread extends Thread { public MyThread(){ Syst...原创 2019-06-18 08:37:40 · 29742 阅读 · 13 评论