随笔分类 - Operating System
摘要:关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就是哪个好。我们按照多个不同的维度,来看看多线程和多进程的对比(注:因为是感性的比较,因此都是相对的,不是说一个好得不得了,另外一个差的无法忍受)。看起来比较简单,优势对比上是“线程 3.5 v 2.5 进程”,
阅读全文
摘要:###用简单的例子说明, 你如果想同时拨电话给 A, B,那么可以这么做.用两个电话, 分别拨出,然后分别对他们说话 -- 多线程设计,线程共享全局数据###找小张,小王,让他们分别打电话给A,B -- 多进程设计,多进程的数据是完全隔离,必须通过进程间通信,解决数据共享的问题.进程比线程更健壮稳定,但是设计更为复杂. 多线程很容易同步状态,相当于一个人同时处理多个任务, 多进程难度就比较高,相当于团队管理. UI中线程运用较多. 高性能服务设计当中,只用进程,因为隔离度高.比如Oracle/msqlserver 都有专门的进程负责读写,专门的进程负责记录日志,专门的进程负责网络连接....
阅读全文
摘要:这几天一直看操作系统,看到内存的连续分配时,对于外部碎片和内部碎片时甚是不解,刚好在某论坛上发现了这样一个生动的讲解,便迫不及待的相遇大家分享一下。 外部碎片,是由于大量信息由于先后写入、置换、删除而形成的空间碎片。为了便于理解,我们将信息比作货物,将存储空间比作仓库来举例子。假设,我们有编号为1、2、3、4、5、6的6间仓库库房,前天送来了一大宗货,依次装入了1、2、3、4、5号仓库,昨天又因故将4号库房的货物运走了,那么数值上说我们还有两间空仓库的空间,但是如果这时候送来两间仓库容量的货物但要求必须连续存放的话,我们实际上是装不下的。这时的4、6号仓库,就成为一种空间的碎片。由于这样的原因
阅读全文

浙公网安备 33010602011771号