pthreadでは、排他や条件セマフォ等はありますが、メッセージ交換のAPIはありません。おそらく多くの人はプロセス間通信を用いているのではないでしょうか? ただし、posixのメッセージキューは、実装により1プロセスがオープンできる数が著しく(32個とか)制限されていますし、SystemVのメッセージもOSの初期設定値が著しく低い値が設定されていたりして、現代的なマルチスレッドの設計には向いていないかもしれません。また、UNIXは所有者プロセスがいなくなってもリソースが残ってしまいますので、正直使いづらいです。 プロセス内でのみのメッセージ交換なら、pthreadとSTLなどを組み合わせてキューをつくることも考えられます。軽量で高速なキューの実装が可能です。とりあえず実装することは難しくないのですが、デッドロック等に十分に注意して実装してください。共有メモリにおけば、プロセス間通信も可能