2017-12-20 7 views
0

私のゲームプロジェクトのドットでは、ユーザーに渡された時間を表示するのにマルチスレッドを使用します。 カーソルが入力を完了する前にユーザー入力と重複します 私はアウトに影響を与えるユーザの入力を使用してコンソールにスレッドを修正したいスレッドからのマルチスレッドのスキャン

+0

*スレッド間の*同期*がなければ、 "重複"を停止することはできません。私はあなたがあなたのデザインを考え直して、すべての出力*と*を1つのスレッドに入れておくことをお勧めします。さもなければ、コンソールの入出力は非常に扱いにくいでしょう。 –

+0

他のコンソールに入力さえさえすればいいですか? –

答えて

0

あなたは、Linuxシステムプログラミングの本から取られた私のノートにあるこのようなものであり、必要なもの:

Manual File Locking

機能flockfile関数()はストリームがなくなるまで待機するongerロックされ、ロックカウント、 をバンプしてからストリームの所有しているスレッドになって、ロックを取得し、リターン:

#include <stdio.h> void flockfile (FILE *stream);

関数funlockfileも()ストリームに関連したロックカウントをデクリメント

#include <stdio.h> 

void funlockfile (FILE *stream) 

flockfile (stream); 

fputs ("List of treasure:\n", stream); 
fputs (" (1) 500 gold coins\n", stream); 
fputs (" (2) Wonderfully ornate dishware\n", stream); 

funlockfile (stream); 

希望に役立ちます。

+0

私はLinuxではないコードブロックを使用しています。どのようにして、マルチスレッディングの印刷とスキャンの重なりを避けることができますか? –

+0

通常、windowsは盗んだり、すでにxronixの多くの機能を盗んだり、flockfile()と同等の機能を探します。 –

関連する問題