问一个线程间同步问题!

jasonM2008 2010-08-20 09:26:38
现在有一线程A 有一线程B ,A B 线程之间有一共享的队列 X ,当线程A 接受到一个任务的时候,会吧任务放到队列X里面,B 线程会一直轮询队列X ,从里面取出任务,然后完成任务。
1。但是有个问题,B 完成任务的时候很长,由于队列要被同步,这就可能会导致A线程有了任务,但是很长时间都不能把任务放到队列里面去。
2.任务的数据结构里面有个套接字S ,A 会在这个套接字上收发数据, B 会在这个套接字上发数据,这个S 也应该需要同步吧?不能两个线程同时在一个套接字上发数据吧??
各位有经验的指点!!!谢谢!
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SEESEECN 2010-08-20
  • 打赏
  • 举报
回复
1.B在执行任务的时候,只需要从X中将数据拷贝出来存储在临时变量里边处理,不要在X中直接操作。
2.A在套接字S上收数据的话,当你建立连接的地方应该有连接方的详细信息,利用这个信息在送数据的线程里面搞一个新的套接字就可以发消息了。当然,1楼的信号同步也是个不错的方法
cpp2017 2010-08-20
  • 打赏
  • 举报
回复
1 B在执行任务的时候,只需要从X中将数据拷贝出来存储在临时变量里边处理,不要在X中直接操作。
==>
并且还要使用一个新的线程去处理这个任务
jogger007 2010-08-20
  • 打赏
  • 举报
回复
1 B在执行任务的时候,只需要从X中将数据拷贝出来存储在临时变量里边处理,不要在X中直接操作。
2 你可以使用互斥量或者信号量来同步,至于用法,网上有很多这种文章来介绍。
xiaoshang_program 2010-08-20
  • 打赏
  • 举报
回复
我也遇到这样的问题 我是用共享内存处理 感觉还行

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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