前两篇文章已经介绍了多线程以及 JMM,我们说过多线程面对的安全问题体现在 `可见性 重排序`三个问题上。Synchronized 就是 Java 为我们提供的解决线程安全问题的一把锁。 以前我们都叫它重量级锁,是因为以前它的性能相比与其他锁要差很多,而且非常笨重。但是随着 JDK 1.6 中对 S ...
分类:
编程语言 时间:
2020-01-06 19:30:22
阅读次数:
76
前言 在并发变成中,我们需要关注两个问题: 1. 线程之间如何通信。 2. 线程之间如何同步。 线程之间通信指的是线程之间如何交换信息。线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写 读内存中的公共状态来隐式进行通信。 在消息传递的 ...
分类:
编程语言 时间:
2020-01-05 20:32:43
阅读次数:
107
目的 这一系列的博文的目的是帮助自己对多线程的知识做一个总结,并且将 Java 中的多线程知识做一个梳理。尽量做到全面和和简单易懂。 概念 进程与线程 进程是操作系统级别的, 进程是操作系统分配资源的基本单位 ,一个进程可以包含多个线程,线程共享进程的资源。 线程是 CPU 调度的基本单位 。 为什 ...
分类:
编程语言 时间:
2020-01-05 16:03:48
阅读次数:
107
前言: 虽然java的API中说创建多线程的方式只有两种(There are two ways to create a new thread of execution),分别是继承 类创建和实现 接口创建,在上一篇博文中演示了这两种, "详见" ,但是JDK5.0以后新增了两种,分别是实现 接口创建 ...
分类:
编程语言 时间:
2020-01-04 20:36:33
阅读次数:
88
线程相关 Java多线程实现方式 继承Thread,实现Runnable接口,实现Callable接口(能抛异常且有返回值,不常用) 为什么有了继承Thread方式还要有Runnable接口方式 实现接口的方式适合多个相同程序代码的线程去处理同一个资源,可以避免Java中单继承的限制 为什么JVM启 ...
分类:
编程语言 时间:
2020-01-01 15:05:50
阅读次数:
68
15个java多线程面试题及答案Java,可以说学完基础才是真正的开始,成功面试也是程序员必须经历的一步。面试答题技巧是很重要的,又快又准确的回答,能让公司对你产生好感。下面是我归纳的一些java多线程的面试题和答题思路。1、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟
分类:
编程语言 时间:
2020-01-01 10:05:28
阅读次数:
69
Java多线程与高并发:高并发解决思路 小玲子之凌空蹈虚关注 122018.11.21 09:55:30字数 1,553阅读 4,228 來源:http://www.wangtianyi.top/blog/2018/05/11/javaduo-xian-cheng-yu-gao-bing-fa-li ...
分类:
编程语言 时间:
2019-12-31 15:57:07
阅读次数:
85
先上完整的代码 后续再依次修改代码块得到相应的结论 1 //尝试写一个死锁 感受一下 2 public class DeadLock { 3 public static void main(String[] args) { 4 Object o1 = new Object(); 5 Object o ...
分类:
编程语言 时间:
2019-12-30 00:09:37
阅读次数:
71
private static final ThreadPoolExecutor executor = new ThreadPoolExecutor(32, 128, 120, TimeUnit.SECONDS, new LinkedBlockingQueue<>(512), r -> { Threa ...
分类:
编程语言 时间:
2019-12-29 20:28:09
阅读次数:
175
前言 Java.lang.Thread是Java应用程序员对Java多线程的第一站,Thread就是对Java线程本身的抽象 所以在Java中的线程编程概念中,一个Thread实例 == 一个线程 线程有哪些属性、行为,Thread大致就有哪些属性、行为。 源码 构造器 public Thread( ...
分类:
编程语言 时间:
2019-12-25 23:57:05
阅读次数:
147