【问题标题】:Not able to create multi-threads after increase mqueue message size增加 mqueue 消息大小后无法创建多线程
【发布时间】:2017-05-13 23:09:54
【问题描述】:

在我的 C 软件中,我创建了 10 个线程(多线程)并将消息写入消息队列。我还创建了另外 1 个线程来监控队列并从队列的另一端排出数据。

运行正常,但消息大小卡在默认值 (10)。

我从论坛了解到通过运行“echo number>/proc/sys/fs/mqueue/msg_max”来增加 mqueue 大小,我在 Linux (Ubuntu) 中将“number”设置为 100。

但是在此更改之后,当我再次执行我的软件时,我无法创建 (pthread_create) 超过 4 个线程。其他 7 个线程创建报告错误。除了队列太小之外,一切都很好。

请问如何恢复msg_max的默认值,以便再次运行软件?

还有其他方法可以增加 mqueue 的大小吗?

非常感谢。

干杯,

珍妮丝

【问题讨论】:

  • 你试过echo 10>/proc/sys/fs/mqueue/msg_max吗?
  • /proc/sys/fs/mqueue/msg_max 更改队列中的最大消息数。您的代码可能还有其他问题,但我们无法知道,因为您根本没有显示任何 C 代码。
  • 非常感谢您的建议。我们尝试了 10 > /proc/sys/fs/mqueue/msg_max 并且一切都很好。

标签: c multithreading mqueue


【解决方案1】:

我们尝试了 10 > /proc/sys/fs/mqueue/msg_max 并且一切都很好了。 - 贾尼斯曼

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 2015-02-03
    • 2013-05-24
    • 2013-09-04
    • 2013-07-03
    • 2012-06-16
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多