線程:一個獨立的運行單位
31 號學習了線程,在此之前我編寫的所有 Java 程序都只有一個主線程,而線程的加入可以讓程序在主線程下加入分線程,讓程序具備同時進行多項工作的可能
在 多線程 OS 中,通常是在一個 進程 中包括多個線程,每個線程都是作為利用 CPU 的基本單位,是花費最小開銷的實體。線程具有以下屬性。
1 )輕型實體
線程中的實體基本上不擁有 系統資源 ,只是有一點必不可少的、能保證獨立 運行 的資源,比如,在每個線程中都應具有一個用于控制線程運行的 線程控制塊 TCB ,用于指示被執行指令序列的 程序計數器 、保留 局部變量 、少數狀態參數和 返回地址 等的一組 寄存器 和 堆棧 。
2 )獨立調度和分派的基本單位。
在多線程 OS 中,線程是能獨立 運行 的基本單位,因而也是獨立調度和分派的基本單位。由于線程很 “ 輕 ” ,故線程的切換非常迅速且開銷小(在同一 進程 中的)。
3 )可并發執行。
在一個 進程 中的多個線程之間,可以并發執行,甚至允許在一個進程中所有線程都能并發執行;同樣,不同進程中的線程也能并發執行,充分利用和發揮了 處理機 與外圍設備并行工作的能力。
4 )共享 進程 資源。
在同一 進程 中的各個線程,都可以共享該進程所擁有的資源,這首先表現在:所有線程都具有相同的 地址空間 (進程的地址空間),這意味著,線程可以訪問該地址空間的每一個虛地址;此外,還可以訪問進程所擁有的已打開 文件 、定時器、 信號量 機構等。由于同一個 進程 內的線程 共享內存 和 文件 ,所以線程之間互相通信不必調用 內核 。
?
?
這便是最簡單的一個線程程序了,主程序下只有一個線程
?
而這樣就可以創建 5 個線程
而線程遠不止這一種創建方法,還有通過內部類,通過 Runable 接口創建線程,通過 Timertask 創建等
其中Timertask提供了幾種方法特別好用,比如scherule方法,他可以讓線程在程序啟動后n毫秒后啟動
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
