
并发与多线程
PrettyBoy@
程序元
展开
-
死锁与CPU使用率
死锁一定会造成cpu使用率飙升吗?这取决于锁的实现,通常锁有两种实现:ps: 在一个角落看到这篇文章,记录一下;1 拿不到锁的时候,忙等待,反复探测锁状态,直到拿到锁,进入临界区。这种情况会消耗CPU。while (locked);1这种锁,称为自旋锁。比如pthread_spin_lock。2 拿不到锁的时候,放弃CPU,休眠,离开运行队列,这种情况不会消耗CPU。while (locked) sleep(1);1这种锁,称为休眠锁。pthread_mutex就转载 2021-06-03 14:07:31 · 2544 阅读 · 0 评论 -
线程的几种状态转换
线程的几种状态转换线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CP转载 2020-12-02 10:43:59 · 232 阅读 · 0 评论