JAVA多线程
文章平均质量分 75
闻人此生
太阳当空照,花儿对我笑,你叫花儿吗?
展开
-
Executor框架的使用
//为每一个任务创建一个新线程的缺点://①线程的创建与销毁开销很大//②大量的线程将占据大量的资源,比如内存空间,容易造成服务器资源耗尽而崩溃//③可创建的线程数量受到操作系统等因素的限制,如果破坏了这些限制,可能抛出异常//使用Executor将任务的提交与执行解耦,提高程序的并发度,由此获得并发性,并且避免了为每一个任务创建一个新线程产生的问题class ExecutorTest{ private static final Executor executor = Executor原创 2022-03-17 02:50:39 · 513 阅读 · 0 评论 -
JAVA多线程基础--------并发编程三大特性(原子性、可见性、有序性)
并发编程三大特性(原子性、可见性、有序性)并发编程三大特性的定义和由来凡事有因才有果,有果必有因,并发编程的三大特性也如此,人们不会莫名其妙定义出并发编程的三大特性。接下来我们探讨下为什么会有并发编程这三大特性?简单地说,并发编程这三大特性就是为了在多个线程交替执行任务的过程中保证线程安全性(点此跳转)。那么为什么会出现线程不安全的现象呢?接下来我们从这三个特性切入来介绍线程不安全的原因。以下涉及到的主内存和工作内存相当于主存和cpu缓存,详见Java内存模型原子性:一组操作要么全部执行,要原创 2021-08-16 19:38:11 · 411 阅读 · 2 评论 -
JAVA多线程基础--------volatile变量
Java多线程之Volatile变量目录JAVA内存模型(JMM)主内存和工作内存的交互Volatile变量的特性及使用场景Volatile变量两个特性的底层实现原理目录JAVA内存模型(JMM)要想深入地了解Volatile变量必须先了解Java内存模型。因此在介绍volatile变量之前,我们先简单的了解下Java内存模型。在此我们将物理机(共享内存多核系统)的内存模型和JMM对比起来看,因为二者之间有很强的相似性。物理机内存模型我们知道基于高速缓存的存储交互很好的解决了处理器与内存速度之原创 2021-08-14 16:09:15 · 438 阅读 · 0 评论 -
JAVA多线程基础--------线程安全性
线程安全性一个对象是否需要是线程安全的,取决于它是否被多个线程访问,而不取决于对象要实现的功能什么是线程安全的代码------------------------------------------------------------------------------------------------核心:对 共享的 和 可变的 状态的访问进行管理。防止对数据发生不受控的并发访问。何为对象的状态?状态是指存储在对象的状态变量(例如实例或静态域)中的数据。还可能包括 其他依赖对象 的域。e原创 2021-08-11 23:19:58 · 290 阅读 · 1 评论