![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发
CLthinking
这个作者很懒,什么都没留下…
展开
-
Java线程池ThreadPoolExecutor源码解析---基于JDK7
开发中经常会使用到线程池,线程池也是Java中一个比较重要的概念,下面是对这两天阅读ThreadPoolExecutor源码的一点总结,只是总结了大致的轮廓,里面的细枝末节还没有完全弄明白,里面涉及到的东西还比较多,这里先做一个阶段性的总结。下面是一个简单的线程池使用案例:import java.util.concurrent.ArrayBlockingQueue;import jav...原创 2019-03-24 09:25:43 · 264 阅读 · 0 评论 -
弄懂HashMap(JDK7)在多线程下形成死锁的原因
想必大家通过各种渠道都已经知道了HashMap是线程不安全的,当然HashMap的线程不安全表现在很多方面,今天我们主要是彻底弄清楚HashMap在多线程下造成死锁的原因。阅读HashMap源码的时候我们知道,HashMap在扩容的时候会调用transfer函数。就是将原Hash表上的元素全部转移到新的hash表上,我们将transfer的函数再次贴出来: void transfe...原创 2019-03-31 21:15:23 · 5510 阅读 · 3 评论 -
Java源码解析---FutureTask类
FutureTask类是JDK中对并行程序设计中异步模式提供的支持,采用异步模式而不是同步模式来设计程序,可以起到解耦的目的,下面我们直接看FutureTask类的源码(JDK8):先看主要的成员变量和构造函数:public class FutureTask<V> implements RunnableFuture<V> { private volatil...原创 2019-04-29 14:32:49 · 129 阅读 · 0 评论 -
华为面试题,多线程打印121121121.....
题目要求:有一个函数print(int i)被两个线程调用,一个线程调用它打印1,另外一个线程调用它打印2,要求最终打印出121121121.....的效果:参考代码: /** * print(i)被两个线程调用,一个打印1,一个打印2,要求最终打印出121121121....的效果 */ private static void print(int i)...原创 2019-08-30 17:01:36 · 367 阅读 · 0 评论 -
一道好玩的多线程面试题
请问下面的代码输出什么:public class TestThread { static class A extends Thread { A (Runnable r) { super(r); } @Override public void run() { super.ru...原创 2019-09-15 10:49:22 · 236 阅读 · 0 评论