什么叫線程
線程(英語:thread)是操作系統(tǒng)能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務。
在Unix System V及SunOS中也被稱為輕量進程(lightweight process),但輕量進程更多指內核線程(kernel thread),而把用戶線程(ur thread)稱為線程。
擴展資料:
多線程原理:
實現(xiàn)多線程是采用一種并發(fā)執(zhí)行機制。
并發(fā)執(zhí)行機制原理:簡單地說就是把一個處理器劃分為若干個短的時間片,每個時間片依次輪流地執(zhí)行處理各個應用程序,由于一個時間片很短,相對于一個應用程序來說,就好像是處理器在為自己單獨服務一樣,從而達到多個應用程序在同時進行的效果。
多線程就是把操作系統(tǒng)中的這種并發(fā)執(zhí)行機制原理運用在一個程序中,把一個程序劃分為若干個子任務,多個子任務并發(fā)執(zhí)行,每一個任務就是一個線程。這就是多線程程序。
參考資料來源:百度百科-多線程
參考資料來源:百度百科-線程
什么是線程
線程是操作系統(tǒng)能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務。
線程是獨立調度和分派的基本單位。線程可以為操作系統(tǒng)內核調度的內核線程,如Win32線程;由用戶進程自行調度的用戶線程,如Linux平臺的POSIX Thread;或者由內核與用戶進程,如Windows 7的線程,進行混合調度。
同一進程中的多條線程將共享該進程中的全部系統(tǒng)資源,如虛擬地址空間,文件描述符和信號處理等等。但同一進程中的多個線程有各自的調用棧(call stack),自己的寄存器環(huán)境(register context),自己的線程本地存儲(thread-local storage)。
一個進程可以有很多線程,每條線程并行執(zhí)行不同的任務。
線程特點
1、輕型實體
線程中的實體基本上不擁有系統(tǒng)資源,只是有一點必不可少的、能保證獨立運行的資源。線程的實體包括程序、數(shù)據(jù)和TCB。線程是動態(tài)概念,它的動態(tài)特性由線程控制塊TCB(Thread Control Block)描述。
2、獨立調度和分派的基本單位
在多線程OS中,線程是能獨立運行的基本單位,因而也是獨立調度和分派的基本單位。由于線程很“輕”,故線程的切換非常迅速且開銷小(在同一進程中的)。
3、可并發(fā)執(zhí)行
在一個進程中的多個線程之間,可以并發(fā)執(zhí)行,甚至允許在一個進程中所有線程都能并發(fā)執(zhí)行;同樣,不同進程中的線程也能并發(fā)執(zhí)行,充分利用和發(fā)揮了處理機與外圍設備并行工作的能力。
4、共享進程資源
在同一進程中的各個線程,都可以共享該進程所擁有的資源,這首先表現(xiàn)在:所有線程都具有相同的地址空間(進程的地址空間),這意味著,線程可以訪問該地址空間的每一個虛地址。
此外,還可以訪問進程所擁有的已打開文件、定時器、信號量機構等。由于同一個進程內的線程共享內存和文件,所以線程之間互相通信不必調用內核。
什么是線程?
什么是線程?
什么是線程?
線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。
線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。
就是你看見任務管理器的有一個瀏覽器正在運行,但是他的進程一般是一個網(wǎng)頁一個進程 你可以右鍵切換到進程查看。
什么是線程?有什么用 講得通俗點
1、線程的定義
線程,有時被稱為輕量進程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。
線程,在網(wǎng)絡或多用戶環(huán)境下,一個服務器通常需要接收大量且不確定數(shù)量用戶的并發(fā)請求,為每一個請求都創(chuàng)建一個進程顯然是行不通的,——無論是從系統(tǒng)資源開銷方面或是響應用戶請求的效率方面來看。因此,操作系統(tǒng)中線程的概念便被引進了。
線程,是進程的一部分,一個沒有線程的進程可以被看作是單線程的。線程有時又被稱為輕權進程或輕量級進程,也是 CPU 調度的一個基本單位。
2、線程的作用:
線程的作用很多,舉個最為典型的例子:
當需要在網(wǎng)絡上放一個服務端,一個客戶端訪問時,就會新建一個線程處理這個客戶端的事務,這樣的話只要不斷新建線程就可以處理多個用戶的請求了。
擴展資料
線程的五種狀態(tài):
1、新生狀態(tài)(New)
當一個線程的實例被創(chuàng)建即使用new關鍵字和Thread類或其子類創(chuàng)建一個線程對象后,此時該線程處于新生狀態(tài)。 此時線程不是活著的(not alive);
2、就緒狀態(tài)(Runnable)
通過調用線程實例的start()方法來啟動線程使線程進入就緒狀態(tài);但還沒有被分配到CPU,處于線程就緒隊列;此時線程是活著的(alive)。
3、運行狀態(tài)(Running)
一旦獲取CPU,線程就進入運行狀態(tài),線程的run()方法才開始被執(zhí)行,如果在給定的時間內沒有執(zhí)行結束,就會被系統(tǒng)給換下來回到線程的就緒狀態(tài),此時線程是活著的(alive)。
4、阻塞狀態(tài)(Blocked)
通過調用join()、sleep()、wait()或者資源被暫用使線程處于阻塞狀態(tài),此時線程是活著的(alive)。
5、死亡狀態(tài)(Dead)
當一個線程的run()方法運行完畢或被中斷或被異常退出,該線程到達死亡狀態(tài)。處于Dead狀態(tài)調用start()方法,會出現(xiàn)異常。
參考資料:百度百科-線程
本文發(fā)布于:2023-02-28 18:46:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167758276245184.html
版權聲明:本站內容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權益請與我們聯(lián)系,我們將在24小時內刪除。
本文word下載地址:線程(線程和進程的關系).doc
本文 PDF 下載地址:線程(線程和進程的關系).pdf
| 留言與評論(共有 0 條評論) |