我很菜,请求各位帮忙!

zhongfenglongyan 2008-05-23 06:01:33
请教下:在一个函数中假如会调用两个函数!并且被调用的两个函数的执行让它同时执行并且同时结束!或者启动一个新的后台进程!让新的进程的执行和这个函数中的某个被调用的函数同时执行和同时结束!那么该怎么办呢?我听别人说可以用锁可以实现,但是我查了相关资料不知道怎么弄!小女子在此感激不尽,希望各位帮忙!谢谢!
...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
freezing_118 2008-05-23
  • 打赏
  • 举报
回复
  在单CPU的系统里,完全的同时是不存在的,因为一个CPU执行指令一定是串行的,一定有先有后。
  你说的其实是一个进程间或线程间同步的问题。
  首先,你要知道同步的点在哪里。比如你要两个函数同时执行,那同步的点就在函数调用之前。
  然后,你要知道怎么去同步。可以考虑两个线程分别调用这两个函数,并用两个信号量控制,每个函数以对方准备好为前提。如下图所示:

|------------------------|
| thread1 | thread2 |
| | | | |
| | | | |
| V | V |
| post sem1 | post sem2 |
| | | | |
| | | | |
| V | V |
| wait sem2 | wait sem1 |
| | | | |
| | | | |
| V | V |
| call funA | call funB |
|------------------------|
  这样,两个线程一定会在开始调用函数前,等待对方也准备好调用。这样就可以认为函数A和B是同时执行的了。
  同时结束的情况也是类似。
xkyx_cn 2008-05-23
  • 打赏
  • 举报
回复
发这么多,已经在其他帖子回了

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧