![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 76
小楊还能再敲一行
记录本菜菜遇到的奇葩问题 写过的奇葩bug
展开
-
关于多线程的面试题的笔记
自旋锁(While就可以实现):当线程A想要获取一把自旋锁,而该锁有被其他线程锁持有时,线程A会在一个循环中自旋以检测锁是不是已经可用了。 自旋锁需要注意: 持有自旋锁的线程应尽快释放自旋锁,否则等在该锁的线程会一直自旋,浪费CPU时间 持有自旋锁的线程在sleep之前应该释放自旋锁一边其他线程可以获取自旋锁 JVM:自己看书 CAS:利用CPU的CAS指令,同时借助JNI来完成java的非阻塞算法,实现原子操作。 整个JUC都是建立在CAS上的,因此对于Synchronized阻塞算法,JUC在性能上原创 2022-03-07 11:18:07 · 249 阅读 · 0 评论 -
关于协程的学习记录
线程之间是如何协作的呢? 最经典的例子就是生产者、消费者模型 这个模式性能不高,原因如下: 涉及到同步锁 涉及到线程阻塞状态和可运行状态之间的切换 涉及到线程上下文的切换 这个时候协程就登场了。 什么是协程 协程,英文Coroutines,是一种比线程更加轻量级的存在,一个线程拥有多个协程, 重要的是,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行) 小tips:用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可能被其他程序获取。 内核态:c原创 2021-10-15 11:45:28 · 97 阅读 · 0 评论