劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
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直譯器是單執行緒的,還有進行多執行緒程式設計的必要嗎?
∧
中秋節和大豐收的關聯?
∨
爸媽突然要離婚該怎麼辦?
熱門排行
積碳清除劑真的有用嗎?
妻子的秘密世界女主是誰?
為什麼豐田4s店不讓異地上牌?
篩選出來的數據怎麼改序號?
植物大戰僵尸裡的兩階植物是什麼?
黃飛鴻血戰白蓮教教主是什麼電影?
316鋼刷和304鋼刷哪個好?
奧特曼系列ol夏川遙輝特訓條件?
15年銳志定速巡航怎麼開啟?
北汽威旺m50f可以改裝超齒嗎?
你這個問題很有意思。
第一次執行的時候,可以看出,能執行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:如果你不是非常嚴格地(從系統級杜絕不該被執行的執行緒被呼叫)要求執行緒切換的話,這個邏輯應該可以工作。自己沒有試,希望你明白我的思想,如有錯誤,自己再修改一下。