クライアントを受け入れ、ソケット接続ごとにクライアントにサービスを提供する新しいスレッドを作成するオークションサーバーがあります。各スレッドにはプロトコルがあります。サーバーには、Auction オブジェクトのインスタンスが 1 つだけあります。Auction
object はオブジェクトのリストを保持しLot
ます。Auction
object が引数としてクライアント スレッドに渡されます。Protocol
入札を行い、何らかの方法ですべてのクライアント スレッドに通知する方法が必要です。makeBid
メソッドが存在し、Lot
入札リストに入札を入れます。次のステップは、すべてのクライアント スレッド フォームmakeBid
メソッドに通知することです。これを行うためのベストプラクティスは何ですか?
メッセージを保持するために Thread のフィールド (MSG) を使用しようとしました。!MSG.isEmpty()
スレッドは、中にあるかどうかをチェックしrun()
ます。If !MSG.isEmpty()
thenClientThread
はソケット this に出力しますMSG
。もっと良い解決策があると思います。
public class ClientServiceThread extends Thread {
public String PRINT_NEW_MSG = "";
while (m_bRunThread) {
if(!PRINT_NEW_MSG.isEmpty()){
out.println("PRINT_NEW_MSG: "+PRINT_NEW_MSG);
PRINT_NEW_MSG = "";
String clientCommand = in.readLine();
...
}
}