并发编程
文章平均质量分 81
并发编程学习
mmm_777
这个作者很懒,什么都没留下…
展开
-
缓存行,你听说过吗?
在讨论什么时候缓存行之前,我们先来了解一下计算机的基本组成结构1、计算机组成结构当使用一个程序,程序从硬盘中加载到内存当中,然后CPU将程序中的下一条指令地址读取到PC中,然后将相关数据存储到Registers(寄存器)中PC (Program Counter 程序计数器)记录这一个地址存放下一条执行的指令在哪里,cpu执行完一条就去内存取下一条。Register寄存器执行指令中的数据放到CPU执行,存储数据的就是寄存器ALU(Arithmetic Logic Unit)运算原创 2021-07-14 15:54:00 · 5433 阅读 · 4 评论 -
CAS简介
1、CAS1.1、为什么会有CAS在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。一个线程持有锁会导致其它所有需要此锁的线程挂起。如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是volatile不能保证原子性。因此对于同步最终还是要回到锁机制上来。那么synchronized和CAS的区别原创 2021-05-30 20:07:31 · 322 阅读 · 2 评论 -
线程生命周期
1、线程状态1.1、线程的状态NEW尚未启动的线程处于此状态。RUNNABLE在Java虚拟机中执行的线程处于此状态。BLOCKED被阻塞等待监视器锁定的线程处于此状态。WAITING正在等待另一个线程执行特定动作的线程处于此状态。TIMED_WAITING正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。TERMINATED已退出的线程处于此状态。1.2、线程方法1.2.1、线程常用方法![image.png](https://img-blog.csdnimg...原创 2021-07-14 11:00:09 · 841 阅读 · 0 评论 -
线程创建的方式
1、基本概念 1.1、普通方法调用与多线程 1.2、程序、进程、线程 程序程序是指令和数据的有序集合,本身没有任何运行含义,是一个静态概念。 进程在操作系统中运行的程序就是进程,比如QQ、包放弃、游戏、IDE等等。。进程是程序的一次执行过程,是一个动态概念,也是系统资源分配的单位一个进程开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为干预 线程一个进程中包含若干个线程,一个进程中至少要有一个线程线程是CPU调度和执行的单位.原创 2021-07-14 10:42:59 · 194 阅读 · 0 评论