首页 > 其他分享 >决战圣地玛丽乔亚Day

决战圣地玛丽乔亚Day

时间:2023-03-09 23:33:54浏览次数:29  
标签:乔亚 AQS 队列 玛丽 CPU 线程 内存 自旋 Day

今日目标(AQS):

AQS(抽象队列同步器):

相当于实现锁的一系列模板方法。

如果要实现锁,需要:

1.锁是否被占用的状态值。

2.阻塞/唤醒

3.竞争失败的队列

AQS中:

state:状态信息,不同的锁的用途不同

Node:阻塞队列等的节点信息(pre,next,thread)都是用volatile进行修饰。thread直接放入队列不好,用节点来代替。

阻塞唤醒:使用LockSupport中的工具类方法

当前持有锁的线程:使用了抽象类AbstractOwnableSynchronizer,进行getset

 

1.CLH队列的实现

SMP(对称多处理器结构),保证CPU的内存一致性,但是可能内存访问冲突和资源浪费。

NUMA(非一致存储访问),将CPU分模块,每个模块多CPU组成,具有独立本地内存和插槽进行互联互通。本地内存的速度远高于系统其他节点的内存速度。

普通的自旋锁:

对某一原子变量,例如当前线程的原子变量,进行循环执行CAS操作,直到成功。

但是!自旋锁在激烈的锁竞争下,性能差,且如果竞争剧烈可能会被插队导致饥饿。

 

CLH锁其实是对自旋锁的一种改良。

 

 

 

 

 

2.性能为什么高

3.入队列过程?为什么先自旋?

4.Semopher是什么?限流可以用吗?

5.ReentrantLock?与Synchronized有什么区别?释放阻塞的指定线程?为什么finally释放?

标签:乔亚,AQS,队列,玛丽,CPU,线程,内存,自旋,Day
From: https://www.cnblogs.com/dwj-ngu/p/17201912.html

相关文章

  • 代码随想录训练营day8|第202题. 快乐数、两数之和、第454题.四数相加II
    202.快乐数题目链接:202.快乐数题目描述:编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然......
  • 代码随想录算法Day37 | 738.单调递增的数字
    738.单调递增的数字题目链接:738.单调递增的数字-力扣(LeetCode)思路将数字转换成字符数组形式,然后从后向前遍历,当遇到当前这个数大于后一个数的时候,这个数减一,他的后一......
  • 路飞项目day_11 django中celery使用 轮播图实时 课程前端 功能表
    目录今日内容详细一、celery执行异步任务、延迟任务、定时任务二、django中使用celery1.秒杀功能1.1视图1.2任务order_task.py1.3前端2.django中使用celery三、轮播图接口......
  • Linux基础day03
    虚拟机的快照拍摄快照(存档)开机状态快照关机状态快照恢复快照(读档)虚拟机的克隆虚拟机必须是关机状态才可以克隆开机状态或者挂起状态,开机状态的快照是无法克隆......
  • 路飞-day10——celery执行异步、延迟、定时任务,django中使用celery(秒杀商品功能),轮播图
    目录一、celery执行异步任务,延迟任务,定时任务异步任务延迟任务定时任务二、django中使用celery2.1定时任务推荐使用的框架(了解)2.2秒杀功能2.2.1秒杀功能逻辑分析2.1.2......
  • GUI Day 1 AWT
    1、创建frame 概念容器组件设置相关的frame参数,学会看懂源码  查看源码的快捷键CTRL+鼠标左键问题:如何创建多个窗口答案:创建自己的类MyFrame,将创建方法封装,创......
  • 算法训练Day9| LeetCode28. 找出字符串中第一个匹配项的下标(KMP算法)
    28. 找出字符串中第一个匹配项的下标给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从0开始)。如果......
  • day88 - 数据库函数设计-插入100w条数据
    数据库插入100w条数据CREATETABLE`app_user`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(50)DEFAULT''COMMENT'用户昵称',`email`V......
  • Linux运维DAY08
    上周内容: 1.VmwareWorkStition(快照、克隆、网络) 2.Linux目录结构 (每个目录存放是什么类型的文件) 3.Linux路径定位/etc/hostname路径就是对文件定位的一种方......
  • day08 (2023.3.8)
    1.Java虚拟机的内存  2.垃圾回收机制 3.垃圾回收机制总结 4.this关键字  运行结果: 5.static静态的 6.静态初始化块 7.包机制 8.面向对象的三......