タグ

キューとスレッドに関するiwwのブックマーク (3)

  • Man page of MQ_SEND

    Section: Linux Programmer's Manual (3) Updated: 2020-08-13 Index JM Home Page roff page 名前 mq_send, mq_timedsend - メッセージキューにメッセージを送信する 書式 #include <mqueue.h> int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned int msg_prio); #include <time.h> #include <mqueue.h> int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec *abs_t

    iww
    iww 2017/07/13
    『関数 mq_send() と mq_timedsend() はスレッドセーフである。 』
  • Posixメッセージキュー - s-kita’s blog

    Introductionメッセージキューは、メッセージのリンク構造と考えることが出来る 各メッセージはレコードであり、各メッセージには送信側が指定した優先度が付いている。 メッセージの書き込みに際しては、そのキューにおいて何らかのプロセスがメッセージの到着を待っていることが要求されない。(パイプと対照的) メッセージキューはパイプと異なり、カーネル持続性(kernel persistence)を持つ。(パイプ、FIFOでは、それらが最後にクローズされる際に、残っているデータは破棄される。) PosixメッセージキューとSystem V メッセージキューの違いPosixメッセージキューからの読み出しは、常に最も高い優先度の最も古いメッセージを返す。System V メッセージキューでは、任意の優先度のメッセージを読み出すことが出来る。 Posixメッセージキューでは、空のキューにメッセージが

    Posixメッセージキュー - s-kita’s blog
  • pthread でキューを作る(再挑戦)。ついでに dtrace でスレッドの解析 - IT戦記

    一日、一回 pthread 勉強。 はじめに pthread でキューを書いてみる - IT戦記に関して、id:n-soda さんからとても貴重なアドバイスを沢山頂いたのですべて直しておきたいと思います。 当にありがとうございます。 指摘が会った点まとめ 再帰呼び出しの問題 キューが一杯の場合に enQ() の再帰呼び出ししているのが変です。ここは while で書けるはずです。Cの場合、末尾再帰の削除をしない処理系がほとんどですし、このケースでは、deQ() 側のスレッドと enQ() 側のスレッドで速度差があるだけで再帰してしまいますから、スタックを相当無駄に消費します。スタックオーバーフローで死んでしまう可能性もあります。 http://d.hatena.ne.jp/amachang/20080611/1213165364#c1213677983 sleep(0) の問題 キューの

    pthread でキューを作る(再挑戦)。ついでに dtrace でスレッドの解析 - IT戦記
  • 1