并發編程系列上下文切換學習筆記

      網友投稿 635 2022-05-29

      介紹上下文切換之前先介紹一下進程、線程的相關概念,以便于更好地理解上下文切換

      進程:在操作系統中的定義是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位。在早期的操作系統中,確實是由進程直接執行程序的,所謂程序就是數據、指令及其組織形式的描述。進程擁有自己獨立的堆和棧,既不共享堆,亦不共享棧,進程由操作系統調度

      線程:早期的操作系統程序是由進程執行,現在的操作系統就是由線程執行的,進程是線程的容器,每一個進程都有它自己的地址空間,一般情況下,包括文本區域(text region)、數據區域(data region)和堆棧(stack region)。文本區域存儲處理器執行的代碼;數據區域存儲變量和進程執行期間使用的動態分配的內存;堆棧區域存儲著活動過程調用的指令和本地變量。線程擁有自己獨立的棧和共享的堆,線程是共享堆,不共享棧的,線程同樣由操作系統調度

      協程:協程與子例程類似。協程(coroutine)也是一種程序組件。協程和線程一樣共享堆,不共享棧。協程由程序員代碼控制是否調度,代碼控制得好的話,是可以避免無意義的調度的,所以協程是可以用于避免

      并發編程系列之上下文切換學習筆記

      在java原生的jdk沒有提供對應的api,只能通過第三方組件來做,github上有兩個是支持的框架,https://github.com/offbynull/coroutines,https://github.com/kilim/kilim

      上下文切換(context switch):對于單核CPU來說,在一個時刻只能運行一個線程,對于并行來說,單核cpu也是可以支持多線程執行代碼的,CPU是通過給線程分配時間片來解決的,所謂時間片是CPU給每個現場分配的時間,時間片的時間是非常短的,所以執行完成一個時間片后,進行任務切換,切換之前先保存這個任務的狀態,以便于下次換回來的時候,可以加載這個任務的狀態,所以從保存任務狀態到再加載任務的過程稱為上下文切換,不僅在線程間可以上下文切換,進程也同樣可以

      上下文切換測試:

      Lmbench3 [1] 可 以 測 量 上 下 文 切 換 的 時 長。

      使 用 vmstat 可 以 測 量 上 下 文 切 換 的 次 數。

      避免上下文切換方法:

      多線程的鎖競爭會導致上下文切換頻繁,所以就可以從這兩方面下手,一個方面是鎖,就是盡量不用鎖;一個方面是線程,不用線程,用其它方法替換

      取模分段,將id按照hash算法取模分段,不同線程處理不同端的數據

      CAS算法,java中的Atomic就是使用CAS算法來更新數據,并沒有使用鎖

      使用協程的方法,在不必要的地方就不調用,避免上下文切換

      volatitle的應用,volatile關鍵字可以說是輕量級的鎖,volatile關鍵字是實現線程操作可見性的,可以用于避免上下文切換

      任務調度

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Ubuntu18.04安裝Samba服務器
      下一篇:【數字IC驗證進階】EDA 工具的幫助文檔使用技巧
      相關文章
      亚洲中文无码永久免费| 亚洲人成在线精品| 99亚偷拍自图区亚洲| 亚洲国产成人无码av在线播放| 久久青青草原亚洲av无码app| 亚洲国产精品久久久久婷婷老年 | 亚洲AV无码一区东京热久久| 亚洲精品成人网站在线观看| 黑人大战亚洲人精品一区| 国产亚洲精品福利在线无卡一| 久久国产成人精品国产成人亚洲 | 亚洲无砖砖区免费| 亚洲不卡视频在线观看| 亚洲一级免费毛片| 亚洲狠狠成人综合网| 涩涩色中文综合亚洲| 亚洲乱亚洲乱妇24p| 日韩欧美亚洲中文乱码| 国产青草亚洲香蕉精品久久| 亚洲成av人片天堂网老年人| 亚洲av高清在线观看一区二区 | 国产国拍亚洲精品福利| 亚洲欧洲日产国码无码网站| 久久精品国产精品亚洲精品 | 91在线亚洲精品专区| 亚洲国产成a人v在线| 亚洲人成小说网站色| 亚洲国产精品成人午夜在线观看| 亚洲av成本人无码网站| 亚洲国产精品综合久久一线| 在线亚洲97se亚洲综合在线| 久久久久久久尹人综合网亚洲| 亚洲综合自拍成人| 亚洲国产成人精品激情| 亚洲精品无码少妇30P| 亚洲国产一级在线观看| 亚洲国产精品无码中文字| 亚洲黄色一级毛片| 在线观看亚洲AV每日更新无码| 日韩亚洲国产综合久久久| 亚洲日韩av无码|