并發
計算機用戶想當然地認為他們的系統一次可以做不止一件事,他們設想他們可以繼續在文字處理器中工作,而其他應用程序則下載文件、管理打印隊列和流音頻,即使是單個應用程序通常也希望一次完成多個任務。例如,流式音頻應用程序必須同時從網絡上讀取數字音頻、解壓縮、管理回放并更新其顯示,甚至文字處理器應始終準備好響應鍵盤和鼠標事件,無論重新格式化文本或更新顯示有多繁忙,可以執行此類操作的軟件稱為并發軟件。
Java平臺的設計初衷是為了支持并發編程,在Java編程語言和Java類庫中提供基本的并發支持,從5.0版開始,Java平臺還包含高級并發API,本課程介紹了平臺的基本并發支持,并總結了java.util.concurrent包中的一些高級API。
進程和線程在并發編程中,有兩個基本的執行單元:進程和線程,在Java編程語言中,并發編程主要涉及線程,但是,進程也很重要。
計算機系統通常具有許多活動進程和線程,即使在只有單個執行核心的系統中也是如此,因此在任何給定時刻只有一個線程實際執行,單個核心的處理時間通過稱為時間切片的OS功能在進程和線程之間共享。
對于具有多個處理器或具有多個執行核心的處理器的計算機系統變得越來越普遍,這極大地增強了系統并發執行進程和線程的能力 — 但即使在沒有多個處理器或執行核心的簡單系統上,并發也是可能的。
進程進程具有獨立的執行環境,進程通常具有完整的私有基本運行時資源集,特別是,每個進程都有自己的內存空間。
進程通常被視為程序或應用程序的同義詞,但是,用戶看作的單個應用程序實際上可能是一組協作進程,為了促進進程之間的通信,大多數操作系統都支持進程間通信(IPC)資源,例如管道和socket,IPC不僅用于同一系統上的進程之間的通信,還用于不同系統上的進程。
Java虛擬機的大多數實現都作為單個進程運行,Java應用程序可以使用ProcessBuilder對象創建額外進程,多進程應用程序超出了本課程的范圍。
線程線程有時被稱為輕量級進程,進程和線程都提供執行環境,但創建新線程所需的資源比創建新進程要少。
線程存在于進程中 — 每個進程至少有一個線程,線程共享進程的資源,包括內存和打開文件,這使高效但可能有問題的通信。
多線程執行是Java平臺的基本特性,每個應用程序至少有一個線程 — 或幾個,如果你計算執行內存管理和信號處理等任務的“系統”線程的話。但是從應用程序員的角度來看,你只從一個線程開始,稱為主線程,該線程具有創建額外線程的能力,我們將在下一節中進行演示。
下一篇:Thread對象文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73003.html
摘要:快照,帶線程命令,是顯示全部進程,是顯示線程,全格式輸出顯示進程樹,不加顯示所有實時快照推薦程度按數字從小到大。 有時候好好的程序放到生產服務器上一段時間后,就會發現服務器響應緩慢,進而進一步發現是cpu過高,于是就慌了,造成cpu過高的原因很多,不過大多是由于資源吃緊造成,例如:sql執行過慢,程序里存在死循環,數據庫連接未釋放,網絡阻塞導致的第三方框架代碼出現死循環,大量的操作導致...
摘要:在這個示例中我們使用了一個單線程線程池的。在延遲消逝后,任務將會并發執行。這是并發系列教程的第一部分。第一部分線程和執行器第二部分同步和鎖第三部分原子操作和 Java 8 并發教程:線程和執行器 原文:Java 8 Concurrency Tutorial: Threads and Executors 譯者:BlankKelly 來源:Java8并發教程:Threads和Execut...
閱讀 3279·2021-11-18 10:02
閱讀 3446·2021-10-11 10:58
閱讀 3379·2021-09-24 09:47
閱讀 1124·2021-09-22 15:21
閱讀 3938·2021-09-10 11:10
閱讀 3281·2021-09-03 10:28
閱讀 1751·2019-08-30 15:45
閱讀 2143·2019-08-30 14:22