首页 新闻 会员 周边

c++共享变量实现进程间通信

0
悬赏园豆:10 [待解决问题]

---存取款:1000块,一个进程取10块,一个进程存20块,求怎么实现,代码

模糊123的主页 模糊123 | 初学一级 | 园豆:194
提问于:2015-10-17 22:14
< >
分享
所有回答(6)
0

windows下:可以用在进程间同步的事件对象、互斥对象、信号量等;你可以搜到很多例子,或者看看windows核心编程方面的书。只能帮到这了,接分,呵呵。

黑桃七 | 园豆:268 (菜鸟二级) | 2015-10-18 12:40
0

就是一个加锁的问题,楼上说了不少,我觉得最好的方法就是共享内存+信号量了

LubinLew | 园豆:278 (菜鸟二级) | 2015-10-20 08:51
0

互斥就行。

风小手 | 园豆:248 (菜鸟二级) | 2015-11-03 18:37
0

 

伪代码,思路大概是这样,具体代码网上应该很多资源

mutex=1;//信号量
progress 1
{
    p(mutex)//判断其它进程是否在取钱
    {
        取钱;
    }
    v(mutex)//释放取钱资源
}

progress 2
{
    p(mutex)
        取钱;
    v(mutex);
}
p(mutex)
{
    if(mutex<=0)Lock(List);//如果有进程在使用资源,就将此进程放进阻塞队列;
    mutex--;
}

v(mutex)
{
    mutex++;
    if(mutex<0)Release(List);//如果有进程释放资源,激活阻塞队列中的一个进程;    
}

Revoir | 园豆:202 (菜鸟二级) | 2016-03-19 16:42
0

这不是类似于经典的成产者消费者问题嘛。

松树作证 | 园豆:202 (菜鸟二级) | 2019-11-02 19:49
0
铜锣烧爱吃关东煮 | 园豆:195 (初学一级) | 2023-08-22 09:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册