進(jìn)程(Process)是計(jì)算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動(dòng)瞳抓,是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位倘感,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)置谦。
線程堂鲤,有時(shí)被稱為輕量級(jí)進(jìn)程(Lightweight Process,LWP)媒峡,是程序執(zhí)行流的最小單元瘟栖。
線程與進(jìn)程的區(qū)別:
1)地址空間和其它資源(如打開文件):進(jìn)程間相互獨(dú)立,同一進(jìn)程的各線程間共享谅阿。某進(jìn)程內(nèi)的線程在其它進(jìn)程不可見半哟。
2)通信:進(jìn)程間通信IPC,線程間可以直接讀寫進(jìn)程數(shù)據(jù)段(如全局變量)來進(jìn)行通信——需要進(jìn)程同步和互斥手段的輔助签餐,以保證數(shù)據(jù)的一致性寓涨。
3)調(diào)度和切換:線程上下文切換比進(jìn)程上下文切換要快得多。
4)在多線程OS中氯檐,進(jìn)程不是一個(gè)可執(zhí)行的實(shí)體戒良。