Java併發程式設計第一章學習

2021-08-18 19:42:35 字數 393 閱讀 3285

單核cpu也可以執行多執行緒,實現原理:給每個任務分配時間片,系統根據時間片分配演算法來執行任務,但是存在上下文切換,即會記住上一次執行執行緒的一些資訊以便於下一次切換回來。

要解決上下文切換可以採用如下方式;    

無鎖併發程式設計

cas演算法

使用最少執行緒

協程減少程序中waiting(等待)狀態的執行緒可以減少上下文切換的次數,因為每次執行緒狀態改變都會進行一次上下文切換。

避免死鎖的幾個常見方法:

避免乙個執行緒同時獲取多個鎖

避免乙個執行緒在鎖內同時占用多個資源,盡量保證每個鎖只占用乙個資源

嘗試使用定時鎖,使用lock.trylock來替代使用內部鎖機制

對於資料庫鎖,加鎖和解鎖必須在乙個資料庫連線裡,否則會出現解鎖失敗的情況。

第一章 併發簡介

1.1 併發簡史 作業系統使得計算機每次能執行多個程式,並且不同的程式都在單獨的程序中執行 作業系統為每個獨立的程序分配各種資源,包括記憶體,檔案控制代碼和安全證書等.如果需要的話,在不同程序之間可以通過一些粗粒度的通訊機制來交換資料,包括套接字,訊號處理器,共享記憶體,訊號量及檔案 計算機加入作業...

linux程式設計學習 第一章

一 庫檔案型別 1 a代表傳統的靜態檔案庫 1 靜態庫的實驗 假設有三個檔案fred.c bill.c和program.c.fred.c includevoid fred int arg bill.c includevoid bill char 8arg program.c include lib....

Java多執行緒程式設計(第一章)

實現方式 1.繼承thread類 2.實現runnable介面,作為thread建構函式的target物件 thread.currentthread 用來獲取呼叫這段 的執行緒,即正在執行中的執行緒 isalive 用來判斷當前執行緒是否處於runnable狀態,也就是處於就緒和執行中的執行緒。sl...