并发编程
文章平均质量分 64
yYahoo~
这个作者很懒,什么都没留下…
展开
-
Java并发编程之锁的升级
如果多个线程轮流获取一个锁,但是每次获取锁的时候都很顺利,没有发生阻塞,那么就不存在锁竞争。只有当某线程尝试获取锁的时候,发现该锁已经被占用,只能等待其释放,这才发生了锁竞争。原创 2023-08-10 16:04:46 · 2178 阅读 · 0 评论 -
Java并发编程之顺序一致性
如果程序是正确的,程序的执行将具有顺序一致性(Sequentially Consistent)——即程序的执行结果与该程序在顺序一致性内存模型中的执行结果相同。同步,即排队。原创 2023-08-04 09:20:23 · 2093 阅读 · 0 评论 -
重排序问题(详细说明指令重排序)
在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排序。原创 2023-08-02 18:35:46 · 2425 阅读 · 0 评论 -
基于总线加锁和缓存锁(CPU实现原子操作的两种方式)
指内存区域如果被缓存在处理器的缓存行中,并且在Lock操作期间被锁定,那么当它执行锁操作回写到内存时,处理器不在总线上声言LOCK#信号,而是修改内部的内存地址,并允许它的缓存一致性机制来保证操作的原子性,因为。就是使用处理器提供的一个 LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被阻塞住,那么该处理器可以独占共享内存。,当其他处理器回写已被锁定的缓存行的数据时,会使缓存行无效。(cache line)时,处理器会调用总线锁定。(有的CPU不支持)性能比较好。原创 2023-08-01 21:26:51 · 4562 阅读 · 0 评论 -
CAS操作——Java并发编程
CAS(Compare and swap)比较并交换操作是一种常见的并发控制方法,用于实现原子性更新共享变量的值。Java并发编程中CAS操作需要输人两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较旧值有没有发生变化,如果没有发生变化,才交换成新值,发生了变化则不交换。原创 2023-08-01 20:54:31 · 2242 阅读 · 0 评论 -
进程、线程间通信方式
进程由线程组成 ——> 进程有的功能线程都有,所以线程的通信方式要多一些。原创 2023-07-30 23:21:43 · 2075 阅读 · 0 评论 -
线程的几种状态
比如 a 任务执行完需要1s,当a开始执行后,到达一个时间片的大小(一般是几十毫秒)就要进行切换,让出cpu核心给别的线程,任务a 回到就绪队列进行等待。Ready 就绪状态:未得到时间片就绪状态,start方法后线程进入就绪队列,等待被选中执行。cpu的核心,在某个时间单位内只能执行一个任务,计算机有几个核心,就能同时执行几个任务。先提交到就绪队列中不一定就可以先执行,线程的执行顺序,是由OS 决定调度的;执行a线程任务,一个时间片后切换到线程任务b,同时保存a的状态,这一过程叫。原创 2023-07-13 15:39:06 · 2030 阅读 · 1 评论