程序和執行緒的區別
執行緒是程序中更小的併發單位,乙個程序中包含多個執行緒。
比如說聊天程序中包含有主線程、傳送訊息的執行緒和接收訊息的執行緒。
程序中負責執行程式的乙個執行控制單元。
執行緒負責程式的執行,而乙個程序允許有多個控制單元,我們稱為多執行緒。
執行緒的建立方式
第一種方法:
1, 繼承thread類
2, 重寫thread類裡面的run方法
3, 建立執行緒的子類物件
4, 呼叫start方法啟動執行緒
第二種方法:
1, 定義類實現runnable介面
2, 實現介面裡的run方法,也就是將執行緒要執行的任務封裝在run方法中
3, 建立執行緒物件,然後將實現runnable介面的類作為建立執行緒物件的引數傳入
4, 呼叫執行緒物件的start方法,啟動執行緒
執行緒安全
1, 多執行緒操作共享資料
2, 操作共享資料的**有多條
解決辦法:同步**塊
好處:解決執行緒安全問題
弊端:降低了相率,每次都要去判斷同步鎖
同步**塊和同步函式
同步**塊的鎖是任意物件,同步函式的鎖是this
並行與併發的區別?執行緒與程序的區別?
假設乙個有三個學生需要輔導作業,幫每個學生輔導完作業是乙個任務 順序執行 老師甲先幫學生a輔導,輔導完之後再取給b輔導,最後再去給c輔導,效率低下 很久才完成三個任務 併發 老師甲先給學生a去講思路,a聽懂了自己書寫過程並且檢查,而甲老師在這期間直接去給b講思路,講完思路再去給c講思路,讓b自己整理...
執行緒和程序的區別
易於排程。執行緒切換比程序切換要快。虛擬記憶體空間,io裝置等 開銷小。建立執行緒比建立進行要快,所需開銷小。進展用少量資源,如棧和暫存器。提高併發性。程序可以建立多個執行緒來執行統一程式的不同任務。有利於充分發揮多處理器的功能。通過建立多執行緒的程序,每個執行緒在乙個處理器上執行,從而實現了應用程...
執行緒和程序的區別
這個問題我查了不下4次,每次都是突然想到查一下,當時明白,完了又會混淆 首先我們知道 程序 執行緒 執行緒 在乙個程式裡面的多個任務,比如賣票系統,他有退票和賣票的功能,我們就可以給他稱之為執行緒。程序 我們開啟任務管理器可以看到的是我們在系統上執行的程式稱之為執行緒 總之,乙個程式必須有乙個程序,...