![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《并发编程》系列
文章平均质量分 91
微信关注:Java编程之道
LeoByte.
唯有编程与自由不可辜负
展开
-
面试官再问你线程池,把这篇文章他。
记一次真实蚂蚁金服面试经历,这是鄙人在暑期找实习阶段遇到的社会主义爆锤!!!那年我还只是个懵懂的少年… 今天分享给需要秋(春)招面试的你们,看你们能抗住几个问题。你要都抗住了… 万字长文!!!一定要耐住看!看完血赚! 线程池十二鞭 面试官:你了解多线程吗?线程池呢? 答:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。同时也可以快速响应前端,将耗...原创 2020-07-14 23:26:29 · 2292 阅读 · 0 评论 -
三道被问烂了的多线程面试题,你知道多少?
先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。 三道被问烂了的多线程面试题 面试题一:利用多线程技术实现生产者-消费者模型 什么是生产者-消费者模型 通俗的讲,就是生产者在不断的生产,消费者也在不断的消费。生产者生成了东西通知消费者进行消费,没有东西了消费者则等到生产者生成。从而通过一个中间容器或通信手段来解决生产者和消费者的强耦合问题。 这也就引出一种简单的生产者-消费者实现方式 使用阻塞队列 生产者 /** * @Auther: 爱唠嗑的阿磊原创 2020-07-11 17:42:05 · 2964 阅读 · 5 评论 -
Java并发编程---Disruptor体验
最近在学习中接触到Disruptor这个框架,虽然目前没有能实际运用到项目中,但是做个了解,在面试吹牛逼原创 2019-03-05 20:05:17 · 2036 阅读 · 0 评论 -
Java基础总结篇---多线程实现
这篇文章只是对java多线程的应用级泛泛而谈,其实还是挺难的,就那几个状态转换就可以把你安排上了。实则要研究还是有挺多学问的我有一本《Java并发编程实战》至今还没有打开第一章。 在说多线程直接首先需要明确一点:同一时间,CPU只能处理1条线程,只有1条线程在工作(执行),多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换),如果CPU调度线程的时间足够快,就造成了多线程并发执...原创 2018-12-19 15:45:36 · 2092 阅读 · 0 评论 -
Java并发编程---并发队列
并发队列 在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列非阻塞队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。 阻塞队列与非阻塞队 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程...原创 2019-01-31 23:08:44 · 2034 阅读 · 0 评论 -
Java并发编程---线程池
线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降...原创 2019-01-31 23:19:28 · 2336 阅读 · 2 评论 -
Java并发编程---Callable&Future
简单说一下这个future模式,一句话概括"去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑",类似于Ajax异步加载,至于Callable其实就是和Runnable差不多的一个接口,无非就是前者可以有返回值.这样说相信你一定知道个大概了.今天情人节? 今天是初十!!! 过啥洋节都成年人了. Callable 在Java中,创建线程一般有两种方式,一种是继承Threa...原创 2019-02-14 18:01:51 · 1989 阅读 · 0 评论 -
Java并发编程---认识重入锁
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。 重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。 举个例子: public class Test implements Runnable { public synchroniz...原创 2019-03-05 10:53:52 · 2048 阅读 · 0 评论 -
Java并发编程---认识读写锁
读写锁 相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些。假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源。但是如果有一个线程想去写这些共享资源,就不应该再有其它线程对该资源进行读或写,这就需要一个读/写锁来解决这个问题。 读写锁的特性:读读共...原创 2019-03-05 11:07:03 · 1845 阅读 · 0 评论 -
Java并发编程---乐观锁&悲观锁&原子类
悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。 乐观锁 总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。 version方式:一般是在数据表中加上一个数据版本号version...原创 2019-03-05 11:17:11 · 2316 阅读 · 0 评论