[問題] 關於多process執行順序 (QT)
小弟寫了一支關於 share memory 的程式
裡面加入了類似hand shake的機制
一開始兩支C code compiler 工作正常
後來其中一支C code改成用QT compiler就不正常了
節取問題code如下
*share 是共享記憶體
C code QT code
1. *share = 0 ; *share=0;
2. while(*share==1); while(*share!=2){
*share = 1 ;
sleep(1); <-----問題點
}
3. *share=2;
用sleep(1)是可以工作正常
可是我原本是用for(i=0;i<100;i++); 的方式去等
也試過不等(什麼都不加)
但C_code那邊加入printf去看 *share 一直是 0
(第三行不會被執行)
雖然之後QT應該會用Dbus做
但還是想了解這是什麼原因
這是用shmget() + shmat() 的方式實作
希望各位前輩可以幫忙解惑...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.0.127
推
12/18 03:57, , 1F
12/18 03:57, 1F
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章