進程和線程:編程
進程是指運行中的應用程序,每個進程都有本身獨立的內存空間。一個應用程序能夠啓動多個進程。多線程
線程是指進程中的一個執行流程,有時也稱爲執行情景。併發
線程和進程的主要區別在於:每一個進程都須要操做系統爲其分配獨立的內存地址空間,而同一進程中的不一樣線程工做在同一內存空間,這些線程之間能夠互相通訊,共享同一塊內存和系統資源。性能
好比,用qq聊天就是一個進程,打字,發語音,雙方互相接受消息就屬於該進程的線程。spa
當一個進程中多個線程同時運行,則稱之爲併發運行。操作系統
進程屬於應用程序級別,線程是進程中的一些操做。線程
多線程:htm
多線程(英語:multithreading),是指從軟件或者硬件上實現多個線程併發執行的技術。具備多線程能力的計算機因有硬件支持而可以在同一時間執行多於一個線程,進而提高總體處理性能。具備這種能力的系統包括對稱多處理機、多核心處理器以及芯片級多處理(Chip-level multithreading)或同時多線程(Simultaneous multithreading)處理器。[1] 在一個程序中,這些獨立運行的程序片斷叫做「線程」(Thread),利用它編程的概念就叫做「多線程處理(Multithreading)」。具備多線程能力的計算機因有硬件支持而可以在同一時間執行多於一個線程,進而提高總體處理性能。進程
但必須注意一個問題:共享資源!若是有多個線程同時運行,並且它們試圖訪問相同的資源,就會遇到一個問題。舉個例子來講,兩個線程不能將信息同時發送給一臺打印機。爲解決這個問題,對那些可共享的資源來講(好比打印機),它們在使用期間必須進入鎖定狀態。因此一個線程可將資源鎖定,在完成了它的任務後,再解開(釋放)這個鎖,使其餘線程能夠接着使用一樣的資源。ip