C言語なら俺に聞け(入門編)Part 116
■ このスレッドは過去ログ倉庫に格納されています
0714デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.ANゲームスレッド→通信スレッドの場合、
char queue[4*1024];
としてキュー用のバッファを確保しておくとする
ゲームスレッドは書き込み位置を記憶するためのポインタchar *w;をもっており、
通信スレッドは読み出しの位置を記憶するためのポインタchar *r;を持っている
そして書き込み/読み込みが終わったときに、次の書き込み/読み込み位置をw/rに保持する
当然起動した瞬間は、queue=w=rであり、キューに追加されてw>rとなった時点で読み出しが行われる
但し、このバッファは使い回すため、w<rとなる可能性もあり、読み出し条件はw!=rとしたほうがよいと思われる
また読み出しが追い付かない場合、キューに溜まっているデータが確保したバッファサイズを越えた瞬間重大なエラーを引き起こす
C言語でのキューの実装はこれでいい?
■ このスレッドは過去ログ倉庫に格納されています