我们都知道,进程(process)和线程(thread)是操作系统最基本的几个概念,也面试官在操作系统部分最喜欢考察的问题之一。然而这两个概念一直比较抽象,不太容易形象化地理解和掌握。
但是对于这个问题,周末在考古阮一峰老师的博客时却发现,他在2013年的一篇帖子中https://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html对于这两个概念就已经做了一个很清晰的对比和解释,而且相当地通俗易懂。
不难看出,mutex是semaphore的一种特殊情况(n=1时)。也就是说,完全可以用后者替代前者。但是,因为mutex较为简单,且效率高,所以在必须保证资源独占的情况下,还是采用这种设计。
(1)以多进程形式,允许多个任务同时运行;(2)以多线程形式,允许单个任务分成不同的部分运行;(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。
本文分享自微信公众号 - 五分钟学算法(CXYxiaowu)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。