pthreads を使用して、C でマルチスレッド アプリケーションを作成したいと考えています。バックグラウンドで多くのワーカースレッドを実行したいのですが、時々、端末に何かを出力する必要があるため、必要になると思います
- 「出力デバイスを取得する」(この場合は stdout)
- それに書き込みます
- 出力デバイスを解放する
- すすぎ、繰り返します。
また、ユーザーが出力に「返信」できるようにしたいと考えています。簡単にするために、ユーザーがスレッドの出力に応答するまで、新しい行はユーザーが応答した後にのみ書き込まれるように、端末には何も書き込まれないと仮定します。端末でユーザー入力を待っていると、ncurses がこれに適しているようです。
しかし、ncurses はスレッドセーフではないことを読んだので、どうすればよいかわかりません。ターミナル関連のすべてをミューテックスでラップできると思いますが、その前に、これについてよりスマートでおそらくより便利な方法、おそらく条件変数を使用したソリューションがあるかどうかを知りたいですか? 私はここでやや迷子になっているので、どんな助けも大歓迎です。