多线程
1加一
这个作者很懒,什么都没留下…
展开
-
如何优雅的停止一个线程?
停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。在java中有以下3种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 使用stop方法强行终止,但是不推荐这个方法,因...转载 2019-01-17 17:41:52 · 643 阅读 · 0 评论 -
理解ThreadPoolExecutor源码(一)线程池的corePoolSize、maximumPoolSize和poolSize
我们知道,受限于硬件、内存和性能,我们不可能无限制的创建任意数量的线程,因为每一台机器允许的最大线程是一个有界值。也就是说ThreadPoolExecutor管理的线程数量是有界的。线程池就是用这些有限个数的线程,去执行提交的任务。然而对于多用户、高并发的应用来说,提交的任务数量非常巨大,一定会比允许的最大线程数多很多。为了解决这个问题,必须要引入排队机制,或者是在内存中,或者是在硬盘等容量很大的...转载 2019-01-18 18:21:38 · 155 阅读 · 0 评论 -
Java内存模型JMM(Java Memory Model)
在并发编程中,多线程之间采取什么机制进行信息交换,什么机制进行数据同步?在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步。线程之间通过共享程序公共状态,通过读-写内存中的公共状态的方式来进行隐式的通信。同步指的是程序在控制多个线程之间执行程序的相对顺序机制,在共享内存模型中,同步时显式的,必须显式指定某个方法/代码块需要在多线程之间互斥执行。在说Java内存...原创 2019-05-19 17:31:49 · 209 阅读 · 0 评论 -
深入剖析volatile关键字
volatile的字面解释是易变的,通常用于修饰变量,从字面中可以得知变量是易变的。理解比较简单,但是要用好确不简单。由于volatile关键字涉及java内存模型相关知识。所以了解volatile之前,我们先得学习一下内存模型相关知识,然后分析一下volatile关键字的原理,最后介绍几个使用场景。目录大纲内存模型的相关概念 并发编程中的三个概念 java内存模型 深入剖析vola...原创 2019-05-17 16:26:35 · 171 阅读 · 0 评论