
Java并发编程
文章平均质量分 96
六号表哥
这个作者很懒,什么都没留下…
展开
-
Java 并发编程—CAS 机制
CAS 机制在介绍 CAS 机制之前,来看下面这段代码:它的执行结果是会是 200 吗?public class NoAtomicPersonCount implements Runnable { private int personCount = 0; public static void main(String[] args) { NoAtomicPer...原创 2019-03-31 19:35:25 · 256 阅读 · 1 评论 -
Java 并发编程基础知识
CPU 核心线程数和线程数的关系目前的 CPU 有双核,四核,八核,一般情况下,它和线程数是1:1的对应关系,也就是四核 CPU 一般就能并行执行 4 个线程。但 Intel 引入超线程技术后,使核心数与线程数形成1:2的关系,也就是我们常说的 4核8线程线程调度任意时刻,只有一个线程占用 CPU,处于运行状态。而多线程并发执行就是轮流获取 CPU 执行权。线程调度模型分时调用...原创 2019-04-07 15:29:01 · 333 阅读 · 0 评论 -
Java 并发编程—线程间的共享和协作(一)
线程间的共享和协作线程间的共享JVM 会为每一个线程独立分配虚拟机栈空间,本地方法栈空间以及程序计数器,而对于共享内存中的变量,是对每一个线程而言是共享的,因此多线程并发访问共享内存中的变量时就会出现线程安全问题。具体可以参考JVM 内存模型这篇博客。synchronized 内置锁在前面提到共享资源在多个线程并发访问时会出现线程安全问题,而解决线程安全问题就是要解决以下两个问题,一是要...原创 2019-04-12 15:53:41 · 506 阅读 · 0 评论 -
Java 并发编程—线程间的共享和协作(二)
线程间的共享和协作文章目录线程间的共享和协作Lock 显示锁Lock APIReentrantLock什么是可重入锁?ReentrantLock实现公平锁和非公平锁读写锁ReentrantReadWritLockCondition接口对比 Object 的 wait 和 notify使用 Lock 配合 Condition 实现等待通知机制总结参考Lock 显示锁在 Java 中,一般情况...原创 2019-04-14 03:23:59 · 374 阅读 · 0 评论 -
Java 并发编程—volatile 关键字
volatile 关键字volatile 作用volatie 用于修饰变量,它有两个作用。它可以保证变量在多线程之间是可见的,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。禁止指令重排序。volatile 保证变量的可见性先来看一下 volatile 保证变量在线程之间的可见性问题,在下面这段代码中,isContinuePrint共享变量,printThread...原创 2019-04-14 18:39:39 · 139 阅读 · 0 评论