![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java多线程
江湖人称小程
踏实一点,不要着急。你想要的岁月都会给你。
展开
-
Java并发编程中使用到的线程池
学习总结于-《Java并发编程实战》为什么要使用线程池?想象一下,如果系统要处理大量简单的并且处理时间很短的任务的话,每一个任务都去创建一个线程的,虽然这种方式能够达到我们的目的,但是有没有更好的方案呢?要知道创建线程不像创建对象那么简单,仅仅是在JVM的堆里分配一块内存而已。创建一个线程,需要调用操作系统内核的API,然后操作系统要为线程分配一系列的资源,这个成本就很高了,所以线程是一个重量级的对象,应该避免频繁创建和销毁。概念区分线程池的设计不像一般意义上池化资源。一般的池化资源是你需要.原创 2020-05-28 15:35:09 · 224 阅读 · 0 评论 -
Java中 FutureTask 的使用
在前面 通过Callable和Future创建线程 已经学习了 Callable 和 Future 两个接口,以及 FutureTask 的简单使用,节约篇幅,这里就不重复介绍了。介绍我觉得 FutureTask 其实就是实实在在的工具类,我们把具体的任务详情在 Callable 接口的实现类中实现,然后将实现类的实例传给 FutureTask,让他来创建任务,它还需要调度者来调度执行。...原创 2020-04-29 15:56:49 · 2860 阅读 · 2 评论 -
Java多线程交叉打印ABABAB,一个线程打印A,一个线程打印B
在Java中想要完成此功能有好几种方法都可以实现,这篇文章主要使用 wait 和 notifyAll 方法。具体需求为:要求先打印字符 A ,再打印字符 B ,完了再打印字符 A …如此循环下去,要求格式为:ABABABABABAB…原理:首先需要两个线程,一个打印字符 A ,另一个打印字符 B ,那么如何让他们互相协作呢?此时,我需要一个 boolean 类型的变量 flag ,这个变量...原创 2019-10-26 16:04:43 · 4928 阅读 · 13 评论 -
Java中进入wait状态的线程被唤醒后会接着上次执行的地方往下执行还是会重新执行临界区的代码
Java中进入wait状态的线程被唤醒后会接着上次执行的地方往下执行还是会重新执行临界区的代码用一个例子来说明:例子原理启动一个线程A打印数字,从0打印到9,在数字等于5的时候,进入wait状态。在线程A启动后等待两秒,然后去唤醒刚才wait的线程(两秒足够让线程A执行到wait处的代码了),观察结果是否是连续的?还是重新打印了之前的数字。也就是说是接着执行的还是重新执行的。public ...原创 2019-10-24 17:10:28 · 4797 阅读 · 6 评论 -
Java多线程学习(一)- Java线程的生命周期与创建方式
文章目录前言一、Java线程的生命周期二、Java线程的创建及启动创建方式一:继承Thread类创建方式二:实现Runnable接口创建方式三:通过Callable和Future创建线程Callable和Future出现的背景Callable和Future简介源码分析通过Callable和Future创建一个线程三、创建线程的三种方式的对比采用实现Runnable、Callable接口的方式创见多...原创 2019-06-06 10:17:49 · 1878 阅读 · 0 评论 -
Java多线程学习(二)- 详解Java中volatile关键字作用
文章目录Java内存模型中的三个特性关键字volatile的特殊规则保证该变量对所有线程的可见性。禁止指令重排序。Volatile内存原理Volatile性能拓展:使用AtomicInteger改善上面的变量自增运算测试程序Java内存模型中的三个特性在了解volatile相关特性之前,先来了解一下Java内存模型中的原子性、可见性和有序性这三个特征。了解这三个特征是为了更好的理解后面所讲的v...原创 2019-06-06 20:26:06 · 1269 阅读 · 0 评论 -
Java中synchronized关键字作用及用法
文章目录概念背景synchronized关键字用法synchronized关键字的作用域synchronized关键字用法及含义synchronized 方法思考时间?synchronized 代码块锁对象锁class概念在上篇文章介绍Volatile关键字的时候提到,synchronized 可以保障原子性和可见性。因为 synchronized 无论是同步的方法还是同步的代码块,都会先把主...原创 2019-07-18 22:11:29 · 13212 阅读 · 6 评论 -
Java中System.out.println()为何会影响内存可见性
先看代码:public class T implements Runnable { private boolean flag = false; public boolean getFlag() { return flag; } public void setFlag(boolean flag) { this.flag = fla...原创 2019-09-20 16:38:20 · 4310 阅读 · 14 评论