Java并发编程
凯耐
高调做事,低调做人
展开
-
Java中的3个常用并发工具类
(一)等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作。 假如有这样一个需求:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完 成。在这个需求中,要实现主线程等待所有线程完成sheet的解析操作,最简单的...原创 2019-11-06 14:01:32 · 621 阅读 · 0 评论 -
java线程安全性-原子13个操作类
(一)原子类简介 当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因 为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使 用synchronized来解决这个问题,synchronized会保证多线程不会同时更新变...原创 2019-11-05 22:40:53 · 457 阅读 · 0 评论 -
java并发编程总汇
章节总汇 第一章:并发编程的优缺点 第二章:线程的状态转换以及基本操作 第三章:Java内存模型以及happens-before规则 第四章:彻底理解synchronized 第五章:彻底理解volatile 第六章:你以为你真的了解final吗? 第七章:三大性质总结:原子性、可见性以及有序性 第八章:初识Lock与AbstractQueuedSynchronizer(AQS) ...原创 2019-11-05 12:04:39 · 517 阅读 · 0 评论 -
线程池的基本使用
(一)线程池简介 1.什么是线程池?使用线程池的优势体现在哪? 为了避免频繁重复的创建和销毁线程,我们可以让这些线程进行复用,在线程池中,总会有活跃的线程在占用,但是线程池中也会存在没有占用的线程,这些线程处于空闲状态,当有任务的时候会从池子里面拿去一个线程来进行使用,当完成工作后,并没有销毁线程,而是将将线程放回到池子中去。 作用: 第一:降低资源消耗.通过重复利用自己创建的线程降低线程...原创 2019-09-18 10:03:09 · 747 阅读 · 0 评论