1.明确进程和线程的概念: 进程: 线程: 2.线程的特点: 并发性: 随机性: 通道性: 3.在java中只有Thread类代表线程 4.在java中使用线程的方式(在java中常见的创建线程的方式) 继承Thread类 实现Runnable接口 实现Callable接口 使用线程池 使用中间插件 ...
分类:
编程语言 时间:
2019-10-24 21:56:33
阅读次数:
125
这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。 40个问题汇总 ...
分类:
编程语言 时间:
2019-10-24 10:18:35
阅读次数:
63
服务端:接收客户端发送的消息,并进行转发。 客户端:发送消息和读取消息 ...
分类:
其他好文 时间:
2019-10-22 15:05:40
阅读次数:
67
线程安全就是防止某个对象或者值在多个线程中被修改而导致的数据不一致问题,因此我们就需要通过同步机制保证在同一时刻只有一个线程能够访问到该对象或数据,修改数据完毕之后,再将最新数据同步到主存中,使得其他线程都能够得到这个最新数据。下面我们就来了解Java一些基本的同步机制。Java提供了一种稍弱的同步... ...
分类:
编程语言 时间:
2019-10-21 13:40:43
阅读次数:
109
一.基础(你没看错这真的是基础) 1.String、StringBuilder 和 StringBuffer 的区别? 2.volatile 的理解? 3.简述synchronized 和 java.util.concurrent.locks.Lock的异同? 4.什么场景下使用HashMap、Li ...
分类:
其他好文 时间:
2019-10-19 19:03:12
阅读次数:
100
并发编程主要设计两个关键字:一个是synchronized,另一个是volatile。下面主要讲解这两个关键字,并对这两个关机进行比较。 synchronized synchronized是通过JMV种的monitorenter和monitorexit指令实现同步。monitorenter指令是在编 ...
分类:
其他好文 时间:
2019-10-19 15:19:55
阅读次数:
81
目录导引: 一、简介 二、源码解析(JDK8) 三、运用示例 一、简介 AQS(AbstractQueuedSynchronizer)的核心思想是基于volatile int state变量,配合Unsafe工具对其原子性的操作来实现对当前state状态值进行修改。 同步器内部依赖一个FIFO的双向 ...
分类:
其他好文 时间:
2019-10-13 22:16:12
阅读次数:
110
https://www.cnblogs.com/Herzog3/p/6203102.html 恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码: int i1; int ...
分类:
其他好文 时间:
2019-10-13 17:00:09
阅读次数:
69
CAS / ABA 标签(空格分隔): 操作系统 1. CAS 解决 Volatile 不保证原子性的问题 [Volatile不保证原子性的解决方案][1], 在其中我们可以看到我们通过 , 获取值并且将其+1, 重点在于 通过 乐观锁 的方法, 相当于实现了原子性的操作. 2. CAS 导致的 A ...
分类:
其他好文 时间:
2019-10-11 18:04:03
阅读次数:
67
volatile关键字实现原理 1、volatile关键字的语义分析 作用:让其他线程能够马上感知到某个线程多某个变量的修改 保证可见性 对共享变量的修改,其他线程能够马上感知到 保证有序性 在重排序时保证volatile修饰的代码位置不变 实现原理 对于volatile修饰的变量会编译时会使用Lo ...
分类:
其他好文 时间:
2019-10-11 12:19:31
阅读次数:
86