![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 并发编程
文章平均质量分 95
Java 并发编程
ReadThroughLife
计算机硕士,世界50强企业Python数字化培训讲师,前世界100强企业软件开发工程师
展开
-
【已解决】利用 Java 多线程并发编程提高数据处理效率
需求很简单,只设计一般的联动数据库查询以及数据库的更新操作,然而在编码实现过程中发现,由于主机的数量很多,导致循环遍历查询、更新时花费很长的时间,调用一次接口大概需要30-40 min 时间才能完成操作。💡因此,为了有效缩短接口方法的执行时间,便考虑使用多线程并发编程方法,利用多核处理器并行执行的能力,通过异步处理数据的方式,便可以大大缩短执行时间,提高执行效率。🎉那么在使用多线程异步更新的策略后,从当初调用接口所需的大概时间为。📍这里使用可重用固定线程数的线程池。,大大提高了执行效率。原创 2022-10-02 18:00:43 · 6468 阅读 · 4 评论 -
《Java 并发编程》共享模型之无锁
《Java 并发编程》共享模型之无锁🚀1. 无锁解决线程安全问题🚀2. CAS 与 volatile🚀3. 原子整数🚀4. 原子引用🚀5. ABA 问题及解决🚀6. 原子数组和原子字段更新器🚀1. 无锁解决线程安全问题有如下需求,保证 account.withdraw 取款方法的线程安全interface Account { Integer getBalance(); void withdraw(Integer amount); /** * 方法内会启动 1000 个线程,每个线程做 -原创 2022-05-01 07:30:00 · 1045 阅读 · 0 评论 -
《Java 并发编程》线程池
《Java 并发编程》线程池🚀1. 自定义线程池🚀2. ThreadPoolExecutor🚁2.1 线程池状态🚁2.2 构造方法🚁2.3 newFiexedThreadPool🚁2.4 newCachedThreadPool🚁2.5 newSingleThreadExecutor🚀3. 提交任务🚀4. 关闭线程池🚀5. 任务调度线程池🚀1. 自定义线程池阻塞队列中维护了由主线程(或者其他线程)所产生的的任务主线程类似于生产者,产生任务并放入阻塞队列中线程池类似于消费者,得到阻塞队列中已有的任务原创 2022-04-30 07:30:00 · 2130 阅读 · 0 评论 -
《Java 并发编程》共享模型之内存
Java 内存模型1. Java 内存模型1.1 原子性1.2 可见性1.3 有序性1. Java 内存模型Java 内存模型(Java Memory Model,JMM)是 JVM 规范中定义的一种抽象模型,用来屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。JMM 体现在以下几个方面:原子性:保证指令不受到线程上下文的影响。可见性:保证指令不会受 CPU 缓存的影响。有序性:保证指令不会受 CPU 指令并行优化的影响。1.1 原子性原创 2022-04-14 11:12:00 · 914 阅读 · 1 评论 -
《Java 并发编程》共享模型之不可变
《Java 并发编程》共享模型之不可变🚀1. 日期转换的问题🚀2. 不可变设计🚀3. 无状态🚀1. 日期转换的问题在运行下面的代码时,由于 SimpleDateFormat 不是线程安全的public class Test { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i &原创 2022-04-26 13:57:32 · 1235 阅读 · 0 评论 -
《Java 并发编程》共享模型之管程
《Java 并发编程》共享模型之管程1 共享带来的问题1.1 临界区1.2 竞态条件2. synchronized 解决方案2.1 synchronized 语法2.2 synchronized 加在方法上3. 变量的线程安全分析4. Monitor 概念1 共享带来的问题1.1 临界区一个程序运行多个线程本身没有问题问题出在多个线程访问共享资源(1)多个线程读共享资源其实也没有问题(2)在多个线程对共享资源读写操作时发生指令交错,就会出现问题一段代码内如果存在对共享资源的多线程读写操作,称原创 2022-04-25 11:27:09 · 1319 阅读 · 0 评论 -
《Java 并发编程》进程与线程
Java 并发编程1. 基本概念1.1 进程与线程1.2 并行与并发1.3 应用1.3.1 应用之异步调用1.3.2 应用之提高效率2. Java 线程2.1 创建和运行线程2.1.1 通过继承 Thread 创建线程2.1.2 使用 Runnable 配合 Thread (推荐)2.1.3 FutureTask 配合 Thread2.1.4 小结1. 基本概念1.1 进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载到 CPU,数据加载到内存。在指令运行过程中还需原创 2022-04-22 20:48:11 · 1334 阅读 · 1 评论