
Java并发编程
青山流水在深谷
大数据开发
展开
-
线程池同步异步调用callable和Future
线程池同步、异步调用Callable,Future涉及内容案例分析,用Future获取线程池执行结果原理分析:Future实现原理使用Future来获取线程池执行代码 package com.myd.cn.ThreadLocal; import java.util.ArrayList; import java.util.List; import java.util.Rand...原创 2020-03-28 23:14:44 · 1089 阅读 · 0 评论 -
线程池excute方法执行底层过程
线程池执行过程调用execute(task)方法底层执行步骤1.首先检查线程池的运行状态和工作线程数量,如果工作线程总数(从ctl变量中获取线程并统计)少于核心线程数,则会创建一个新的线程来执行给的的任务,通过调用addWorker来执行任务.2.如果线程处于运行状态且工作队列能够入队新的任务,则使用double-check机制再次判断是否处于运行状态及是否能够出队任务,如果不成立,...原创 2020-03-28 11:20:00 · 740 阅读 · 0 评论 -
线程池原理及应用之个人心得
线程池的创建和常用参数分析创建方式,利用Executors创建固定、单个、缓存数量线程的线程池 package com.myd.cn.ThreadPool; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingDeque; import java.util.concurr...原创 2020-03-27 14:26:52 · 175 阅读 · 0 评论 -
ThreadLocal应用场景分析
ThreadLocal为解决多线程并发问题提供一种新思路。ThreadLocal并不是一个Thread,而是Thread局部变量ThreadLocal作用解决多线程环境下整个上下文调用需要将关键参数透传如果不使用ThreadLocal,每个方法都要加关键参数,如果内部方法链路过长,那么代码看起来冗余、臃肿如果某处传时将参数值改掉或设置为null,后续调用方法中用到这个参数的代码会受...原创 2020-03-27 00:06:23 · 155 阅读 · 0 评论 -
小议创建线程的若干方式
创建线程的几种方式通过实现Runnable接口的run方法1.继承Runnable接口,重写run方法2.实例化实现后Runnable子类,调用run方法3.例子 package com.myd.cn.createThreadWay;public class RunnableWay { /** *1.实现Runnable的子类 * @author dymll *...原创 2020-03-26 22:21:41 · 144 阅读 · 0 评论 -
java内存模型及线程案例分析
java 内存模型学习目的了解更深层次内存的使用和读取实现,方便日后分析多线程内存相关问题工作中遇到的并发问题,并不好复现,需要对理论知识掌握得足够深刻,才能更好分析操作系统内存模型现代CPU都存在多级缓存,用来缓存CPU经常使用的数据,提供数据的读写、处理速度,分为L1(高速缓存,保存极为常用的数据,容量小),L2(高速缓存,缓存经常使用的数据),Shared L3 Cache(...原创 2020-03-25 23:48:38 · 149 阅读 · 0 评论