作者leolarrel (真.粽子无双)
看板LinuxDev
标题Re: [问题] 关於多process执行顺序 (QT)
时间Sat Dec 15 00:23:09 2012
※ 引述《cty222 (纵裕)》之铭言:
: 小弟写了一支关於 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() 的方式实作
: 希望各位前辈可以帮忙解惑...
我想帮你,但是我得先弄董你写的那个..虚拟码,sorry
有关两个行程要 hand shake , 其实用一个信号/mutex 来进行同步会比较好.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.9.134.158