社区
进程/线程/DLL
帖子详情
这个同步怎么样实现?
sxxny
2004-07-09 01:40:22
现在有以下函数:
fun_wait()
fun1(), fun2(), fun3(), fun4(), fun5();
要求是这样的:
所有的函数都有可能被多线程同时调用,
现在要求: fun_wait()调用的时候,fun1~fun5一定不能够有函数在调用.
fun1~fun5本身可以被多个线程调用而不阻塞.
...全文
134
10
打赏
收藏
这个同步怎么样实现?
现在有以下函数: fun_wait() fun1(), fun2(), fun3(), fun4(), fun5(); 要求是这样的: 所有的函数都有可能被多线程同时调用, 现在要求: fun_wait()调用的时候,fun1~fun5一定不能够有函数在调用. fun1~fun5本身可以被多个线程调用而不阻塞.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
roger_ding
2004-07-10
打赏
举报
回复
CRITICAL_SECTION cs1, cs2, cs3, cs4, cs5;
// initialize
InitializeCriticalSection(&cs1);
...
// delete
DeleteCriticalSection(&cs1);
...
void fun1()
{
::EnterCriticalSection(cs1);
...
::LeaveCriticalSection(cs1);
}
............
void fun5()
{
::EnterCriticalSection(cs5);
...
::LeaveCriticalSection(cs5);
}
void fun_wait()
{
::EnterCriticalSection(cs1);
::EnterCriticalSection(cs2);
::EnterCriticalSection(cs3);
::EnterCriticalSection(cs4);
::EnterCriticalSection(cs5);
...
::LeaveCriticalSection(cs5);
::LeaveCriticalSection(cs4);
::LeaveCriticalSection(cs3);
::LeaveCriticalSection(cs2);
::LeaveCriticalSection(cs1);
}
sxxny
2004-07-10
打赏
举报
回复
不能
unchallenger
2004-07-10
打赏
举报
回复
可能死锁的说......
unchallenger
2004-07-10
打赏
举报
回复
fun_wait(WaitForMutipleObject(*****))
fun1(WaitForSingleObject(fun_wait_evevt,INFINIT);),
fun2(WaitForSingleObject(fun_wait_evevt,INFINIT);),
fun3(WaitForSingleObject(fun_wait_evevt,INFINIT);),
fun4(WaitForSingleObject(fun_wait_evevt,INFINIT);),
fun5(WaitForSingleObject(fun_wait_evevt,INFINIT););
这样可以吗??
ShaftWhy
2004-07-09
打赏
举报
回复
楼主,fun1--fun5运行时,fun_wait能运行吗?
gunj
2004-07-09
打赏
举报
回复
能不能设置一个全局变量,其中只能由fun_wait()来控制,在调用fun_wait()时设为false,函数运行完设置为true,当线程要调用fun1~fun5时,做判断,false则fun1~fun5不执行.
但有问题的是,当fun1~fun5在运行时,如何来让fun_wait()运行?
sxxny
2004-07-09
打赏
举报
回复
up
sxxny
2004-07-09
打赏
举报
回复
能具体点吗
我琢磨了半天了,
好象不是那么简单
ahyf
2004-07-09
打赏
举报
回复
fun_wait() 对 其它的加锁
sxxny
2004-07-09
打赏
举报
回复
在Windows下面运行
ETL异构数据源
同步
datax/全量/增量/定时
同步
视频教程
ETL异构数据源
同步
datax视频教程/全量/... DataX 是阿里开源的一个异构数据源离线
同步
工具,致力于
实现
包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据
同步
功能。
SP(SharedPreferences)是进程
同步
的吗?有什么方法做到
同步
?
一个进程的情况,经常采用SharePreference来做,但是SharePreference不支持多进程,它基于单个文件的,默认是没有考虑
同步
互斥,而且,APP对SP对象做了缓存,不好互斥
同步
。 MODE_MULTI_PROCESS的作用是什么? 在...
什么是进程
同步
?wait( )是如何
实现
进程
同步
的?
进程
同步
是指对多个相关进程在执行次序上进行协调,以使并发执行的主进程之间有 效地共享资源和相互合作,从而使程序的执行具有可在现行。 首先,程序在调用fork()机那里了一个子进程后,马上调用wait(),使父进程...
什么是线程
同步
?
实现
同步
机制有哪些方法?
什么是线程
同步
?...
实现
同步
机制有两个方法: 1。
同步
代码块: synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据。 2。
同步
方法: public synchronized 数据返回类型 ...
【面经】腾讯U3d面试面经 帧
同步
方向 (一)帧
同步
如何解决不
同步
的问题?
服务器是不知道具体逻辑的,所以如果两边客户端计算的某些变量出现不一致的时候,就会出现不
同步
的情况,随着时间的推进,一个小小的不
同步
也会造成滚雪球效应,最后的结果可能就南辕北辙了。 所以为什么会出现不...
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章