当前位置:  技术问答>linux和unix

为什么我的消息队列在线程中不阻塞?

    来源: 互联网  发布时间:2016-06-10

    本文导语:  在线程中读取一个消息队列中的数据,实际上这个消息队列中是没有值的,如果在进程中读取时会阻塞,一致到有消息写入为止。 但是我发现如果在线程中,这个消息队列中即使没有消息,读取的时候也不会阻塞,...

在线程中读取一个消息队列中的数据,实际上这个消息队列中是没有值的,如果在进程中读取时会阻塞,一致到有消息写入为止。

但是我发现如果在线程中,这个消息队列中即使没有消息,读取的时候也不会阻塞,而是立刻返回。而我的目标是希望他阻塞,直到有消息写入为止。

代码如下:
        int ret = 0;
        char buffer[8192];
        printf("msgrcv starting...n");
        ret = msgrcv(msg_id, buffer, 8192,0,0);
        printf("msgrcv ending...n");
        return ret;

正常的情况下,最后一个参数如果设置为0就会阻塞,可是线程中就不阻塞了,请知道的高手不吝赐教,谢谢。

|


int create_msq()
{
    int id;
        id = msgget( (key_t) 0x9999,(IPC_CREAT|0666));
    if(id == -1)
    {  printf(" connect message queue failed!n"); return(-1); }

改为
int create_msq()
{
    int id;
        id = msgget( (key_t) 0x9999,(IPC_CREAT|0666));
    if(id == -1)
    {  printf(" connect message queue failed!n"); return(-1); }
    
    return id;  /* 加这一行 */


    
 
 

您可能感兴趣的文章:

  • HP-UX 下消息队列能否保证消息包的先进先出?
  • 各位专家,如何知道消息队列中消息是否已经超时了?
  • unix下一个关于消息队列的问题
  • 消息队列中消息大小
  • linux 消息队列长度的问题
  • liunx 消息队列的问题
  • 关于消息队列的问题
  • sco unix中消息队列中的一次可发送的最长消息的字节长度是多少?
  • 消息队列消息总大小的问题
  • 请教:写入队列消息的长度问题
  • 关于消息队列
  • 消息队列的清理问题
  • 消息队列问题
  • 关于后台服务进程不能读消息队列的问题?200分求答急急。。。
  • unix关于消息队列和函数msgctl的问题。。急啊!!!
  • Linux下使用C++互斥访问文件+消息队列
  • LINUX如何调整POSIX消息队列大小
  • linux下消息队列不阻塞
  • 单个消息队列能实现进程间聊天功能吗?
  • 请教消息队列相关问题
  • 如何使用shell脚本实现监控程序消息队列阻塞情况?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • qt如何从一个线程发一个消息(事件)给另一个线程要求同步执行某一动作
  • 线程间发消息
  • java/j2ee iis7站长之家
  • 线程间消息传输库 libpseudo
  • 同一个进程,多线程 如何发送消息??
  • gtk编程问题,如何在一个线程中向gtk控件发送一个expose_event消息
  • linux C 语言 多线程读写消息队列
  • 线程函数里不能调用消息对话框吗?(GTK界面)
  • 关于线程,事件,消息!!!新手请教!
  • linux线程可以收发消息吗?
  • c#钩子本线程内消息拦截的方法
  • 如何在windows 平台上实现消息队列(多线程环境)
  • gtk中如何让另一个线程向GUI线程发送自定义消息?
  • JavaScript中的消息框(警告框,确认框,提示框)语法
  • 用java,怎样实现从一个类的发一个消息(消息本身也是一个类)到另一个类?
  • **********写了一个简单的UDP程序,接受英文的消息正常,接受中文的消息显示不完整,请问是什么原因
  • 重分求解,UNIX下的消息队列非常失败,经常发生堵塞现象,现改用FIFO,但FIFO又得自己设计消息,请高手指点
  • 消息队列收不到消息
  • 怎样在程序中修改一个系统V消息队列中消息的个数::
  • 创建消息队列,接受消息失败,接受程序再发送错误消息给发送程序//程序能运行,不出结果
  • 一个消息队列例子,第一次运行正确,第二次运行就提示消息发送失败了
  • MQTT 消息代理 Mosquitto
  • 怎么查询消息队列中每条消息的状态
  • 怎样获取终端的所有打印消息
  • *** 高分请问关于触发消息事件的问题? ***
  • 消息隊列與select的問題
  • 消息服务器 Json Messaging
  • 请教一个关于linux下的消息机制的问题
  • 分布式分组消息系统 Spread
  • 消息中间件的功能?各位铜人帮忙!
  • 页面消息提醒插件 Sticky


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3