操作系统
文章平均质量分 53
The Goat
God of coding
展开
-
原子操作与无锁编程
原子操作CAS操作原子操作能替代锁么以上信息需要后续深入理解,目前只是简单了解原创 2021-02-09 16:32:52 · 477 阅读 · 0 评论 -
多线程 浅谈条件变量
条件变量,cond wait过程中:存在:调用wait前加锁while判断并调用wait,wait内部解锁,wait收到信号后重新加锁\这几步操作,即:在cond wait前,需要加锁,wait时,会把自己放到唤醒队列中,并释放锁;当生产者发来cond signal信号后,该cond wait操作会再次加锁,然后执行对临界资源的操作条件变量有两点需要注意:条件变量要和锁结合起来使用条件变量要用while循环来判断条件是否成立,而不能用if语句来判断关于以上两点的解释,可以参考:多线原创 2021-02-05 16:25:05 · 461 阅读 · 0 评论 -
[转]基于C++11的线程池(threadpool),简洁且可以带任意多的参数
参考:基于C++11的线程池(threadpool),简洁且可以带任意多的参数本人解读:用一个vector保存N个线程,这个vector就成了一个线程池。每个线程,都会通过一个while(!stop)的循环,轮寻task,当有task来临时,就会执行task。当没有task时,线程会wait,阻塞住,等待task来临。task有一个队列,每当新task来临时,会入队,同时,会noti...原创 2020-01-19 16:58:12 · 344 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞之间的区别
个人理解:首先涉及两个对象:调用方 和 被调用方。阻塞非阻塞是指调用方的态度;同步异步是被调用方的特征;从大的概念上来讲同步和异步关注的是消息通信机制,阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.比如程序(调用方)调用某个函数A(被调用方):针对A函数,若A函数必须要执行完才返回,则是同步调用;若A立刻返回,后面得到具体结果后在通知程序,则是异步调用。针对调用方...原创 2020-01-19 11:20:34 · 188 阅读 · 0 评论 -
为什么寄存器比内存快?
计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存快呢?Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。下面就是我的简单翻译。原因一:距离不同距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费更长的时间读...原创 2019-11-19 10:02:44 · 288 阅读 · 0 评论