- 博客(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关注的人
RSS订阅