随笔分类 - 并发-修炼之道
摘要:仅以此记录学习的过程,有些是借鉴的,有错误望指出! Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序依靠synchronized关键字实现锁功能,而
阅读全文
摘要:发展 JDK1.6之前: synchronized 是一个重量级锁,主要通过内部对象Monitor实现(反编译字节码可提现),而Monitor锁又是依赖于底层操作系统的Mutex Lock(互斥锁,互斥量),调用Pthread库实现的,而Pthread库是处于系统的内核空间中,JVM存在于用户空间中
阅读全文
摘要:计算机的缓存一致性 计算机在运行程序时,每条指令都是在CPU中执行的,在执行过程中势必会涉及到数据的读写。我们知道程序运行的数据是存储在主存中,这时就会有一个问题,读写主存中的数据没有CPU中执行指令的速度快,如果任何的交互都需要与主存打交道则会大大影响效率,所以就有了CPU高速缓存(Cache M
阅读全文
摘要:作用原理 volatile是Java虚拟机提供的轻量级的同步机制。 两个作用 可见性:保证被volatile修饰的共享变量对所有线程总数可见的,也就是当一个线程修改了一个被volatile修饰共享变量的值,新值总是可以被其他线程立即得知。 有序性:禁止指令重排序优化 但无法保证原子性。 作用实现 可
阅读全文
摘要:概念 Java内存模型(Java Memory Model简称JMM)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地
阅读全文
摘要:算法概念 假设计算机只有一个 CPU ,则在任意时刻只能执行一条机器指令,每个线程只有获得 CPU 的使用权才能执行指令。 所谓多线程的并发运行,其实是指从宏观上看,各个线程轮流获得 CPU 的使用权,分别执行各自的任务。 在运行池中,会有多个处于就绪状态的线程在等待 CPU ,Java 虚拟机的一
阅读全文

浙公网安备 33010602011771号