劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-03-11 07:06
Linux多執行緒實現執行緒間不停的切換?
7
回覆列表
1 # 使用者2151701896967
你這個問題很有意思。
第一次執行的時候,可以看出,能執行0~6共7次;第二次的時候,從6開始,到5,只有2次了,並且以後都是隻有2次。基於你的描述,我想可以用互斥訊號量來做。1、初始化2個訊號量pmutex1(有資源), pmutex2(無資源),初始化gnum=0 2、啟動兩個執行緒 2.1 執行緒1 lock_the_mutex_signal(pmutex1); // 上鎖自身執行緒,首次可執行 while (gnum < 5) { do_sth(); // 做你的業務邏輯 gnum++; // 增加執行次數 } // end while() unlock_the_mutex_signal(pmutex2); // 解鎖另一執行緒 2.2 執行緒2 lock_the_mutex_signal(pmutex2); // 上鎖自己,首次執行將阻塞,並交出CPU while (gnum > 5) { do_sth(); // ... gnum--; // ... } // end while() unlock_the_mutex_signal(pmutex1); // release the lock PS:如果你不是非常嚴格地(從系統級杜絕不該被執行的執行緒被呼叫)要求執行緒切換的話,這個邏輯應該可以工作。自己沒有試,希望你明白我的思想,如有錯誤,自己再修改一下。
發表回復
相關內容
Java多執行緒,執行緒處於阻塞狀態時會佔用cpu資源嗎,導致阻塞的原因消失之後阻塞解除怎麼理解?
linux下怎樣將執行緒分配到指定CPU?
linux下的多程序和多執行緒,他們分別有什麼作用?
鳥哥的linux私房菜哪一章講執行緒?
linux系統如何從圖形介面切換到文字介面?
Linux中程序和執行緒的區別詳解?
多執行緒情況下,主執行緒先退出,子執行緒會被強制退出嗎?
既然Python直譯器是單執行緒的,還有進行多執行緒程式設計的必要嗎?
∧
中秋節和大豐收的關聯?
∨
爸媽突然要離婚該怎麼辦?
熱門排行
戴拿真骨雕什麼時候出?
北面衝鋒衣1990和ss23的區別?
series8蜂窩版可以插卡嗎?
cnc加工中心三菱刀臂怎麼調?
歐尚x7plus如何一鍵泊車?
盧卡斯動能無限怎麼獲得?
猛獸派對黃金卡洛特獲得技巧?
力士lv-113功放怎麼樣?
華強北watchultra9怎麼更換表盤?
情侶小店鋪怎麼收款?
你這個問題很有意思。
第一次執行的時候,可以看出,能執行0~6共7次;第二次的時候,從6開始,到5,只有2次了,並且以後都是隻有2次。基於你的描述,我想可以用互斥訊號量來做。1、初始化2個訊號量pmutex1(有資源), pmutex2(無資源),初始化gnum=0 2、啟動兩個執行緒 2.1 執行緒1 lock_the_mutex_signal(pmutex1); // 上鎖自身執行緒,首次可執行 while (gnum < 5) { do_sth(); // 做你的業務邏輯 gnum++; // 增加執行次數 } // end while() unlock_the_mutex_signal(pmutex2); // 解鎖另一執行緒 2.2 執行緒2 lock_the_mutex_signal(pmutex2); // 上鎖自己,首次執行將阻塞,並交出CPU while (gnum > 5) { do_sth(); // ... gnum--; // ... } // end while() unlock_the_mutex_signal(pmutex1); // release the lock PS:如果你不是非常嚴格地(從系統級杜絕不該被執行的執行緒被呼叫)要求執行緒切換的話,這個邏輯應該可以工作。自己沒有試,希望你明白我的思想,如有錯誤,自己再修改一下。