線程(thread)技術(shù)早在60年代就被提出,但真正應(yīng)用線程到操作系統(tǒng)中去,是在80年代中期。為什么有了進(jìn)程的概念后,還要再引入線程呢?使用多線程到底有哪些好處?使用多線程的理由之一是和進(jìn)程相比,它是一種非常”節(jié)儉”的多任務(wù)操作方式。在Linux系統(tǒng)下,啟動(dòng)一個(gè)新的進(jìn)程必須分配獨(dú)立的地址空間,建立眾多的數(shù)據(jù)表來(lái)維護(hù)它的代碼段、堆棧段和數(shù)據(jù)段。而運(yùn)行于一個(gè)進(jìn)程中的多個(gè)線程,它們之間使用相同的地址空間,共享大部分?jǐn)?shù)據(jù),啟動(dòng)一個(gè)線程所花費(fèi)的空間遠(yuǎn)遠(yuǎn)小于進(jìn)程所花費(fèi)的空間,而且,線程間彼此切換所需的時(shí)間也遠(yuǎn)遠(yuǎn)小于進(jìn)程間所需要的時(shí)間。使用多線程的理由之二是線程間方便的通信機(jī)制。對(duì)不同進(jìn)程來(lái)說(shuō),它們具有獨(dú)立的數(shù)據(jù)空間,要進(jìn)行數(shù)據(jù)的傳遞只能通過(guò)通信的方式進(jìn)行,這種方式費(fèi)時(shí)且很不方便。由于同,進(jìn)程下的線程之間共享數(shù)據(jù)空間,所以一個(gè)線程的數(shù)據(jù)可以直接為其它線程所用,這樣快且方便。在計(jì)算機(jī)中,凡是提供服務(wù)的一方我們稱為服務(wù)端(Server),而接受服務(wù)的另一方我們稱作客戶端(Client)。不過(guò)客戶端及伺服端的關(guān)系不見得一定建立在兩臺(tái)分開的機(jī)器上,提供服務(wù)的伺服端及接受服務(wù)的客戶端也有可能都在同一臺(tái)機(jī)器上,這樣在同一臺(tái)機(jī)器上就同時(shí)扮演伺服端及客戶端。線程間方便的通信機(jī)制可以使得在我們?cè)诜?wù)端和客戶端方便的進(jìn)行通信傳輸與各種操作,可以通過(guò)運(yùn)用多線程機(jī)制方便實(shí)現(xiàn)上傳、下載文件:增加、刪除用戶:以及在服務(wù)端進(jìn)行文件的管理。
標(biāo)簽:
linux
socket
文件傳輸
上傳時(shí)間:
2022-06-20
上傳用戶: