*進程**:程序的一次執(zhí)行,可理解為一個容器;**線程**:CPU的基本調(diào)度單位,也可理解為容器中的工作單位。
+**聯(lián)系**:一個程序至少有一個進程,一個進程至少有一個線程,線程是進程的一部分;進程可以包含多個線程來并發(fā)運行;線程利用的資源(比如內(nèi)存)是共享進程的。
+**區(qū)別**:**地址空間和其它資源不同**,進程間相互獨立,同一進程的各線程間共享;**通信不同**,進程間通信IPC(internet process connection),線程間可以直接讀寫進程數(shù)據(jù)段(如全局變量)來進行通信——需要進程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性;**調(diào)度和切換不同**,線程上下文切換比進程上下文切換要快得多。
參考鏈接:
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html