自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 多线程的锁理解

同时每一次没有获取锁的会存放在双向链表中,在创建链表时,会建一个伪数据,线程是空的, 状态是0,后续没加一个队列会将前一个的状态置为-1,表示还有后续线程待唤醒执行。因线程可被取消,在链表中获取资源线程的在移除时,需要找到前后有效的线程(不包括已经取消的线程)加锁要cas(比较并替换)操作,添加等待线程要cas。

2025-08-03 23:28:29 211

原创 多线程笔记

通过futuretask对象的get方法可以获取到线程执行的结果,是同步非阻塞的。同时需要在使用结束之后调用remove方法,移除threadlocal的内容,避免内存泄露问题。(1)、使用synchronized关键字,保证执行只有一个线程获取锁,同时,每次获取锁,都会读取主内存的数据。threadlocal在使用结束之后,key是弱引用被回收了,value没有回收,就会造成内存泄漏。有序性:执行结果是固定,理论上按照顺序执行,但执行会被制定重排。3、线程执行保证三大特性:原子性,可见性,有序性。

2025-08-03 00:15:07 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除