質問: 複数のユーザがいるとして 各ユーザーには0~10のidを付けたいとします そこでサーバーでは接続してきたユーザに現在のid番号を与え、与え終わったらidをインクリメントをします ``` var tmpid; function request(){ echo tmpid; tmpid++; if(tmpid==11)tmpid=0; } ``` この時、同時にリクエストが有っては0~10のid番号が全体を通してみた場合、数にばらつきが出てしまいます そこで上のコードでのfunction requestを実行できるクライアントは一人とし、接続が同時に会った場合は1人を待機状態とさせるような処理を書きたいと思っています。 PHPで実装したいのですが、なかなか資料が見つかりません。お力を貸してください。 (JavaScriptのNode.jsでもいいのです)
回答: nodejsであればサーバー側の処理はシングルスレッドですので、同時にいくつリクエストが到着しようと、サーバー側のあらゆる関数はひと時に一つしか動きません。よって特に何もしなくても確実に個別のidが割り振られます。 普通のマルチスレッドのアプリケーションサーバーと異なりそこがnodejsの特徴だと思います。(ただしクラスタリングしない前提が必要だと思います)