私は単純なネットワーククライアント/サーバーを開発しています。クライアントはサーバーへの接続を維持し、入ってくる情報に基づいてワーカースレッドを開始するMainConnectionクラスを持っています。ワーカースレッドがメイン接続を介してサーバーへの進捗状況をフィードバックするようにします。データを送信するためにMainConnectionにpublic static synchronizedメソッドを持たなければならないのか、Socketを含むスレッドにSessionオブジェクトを渡してデータを送信するための同期メソッドを渡すべきかどうかはわかりません。Java並行性、親スレッドのアクセスソケット
1
A
答えて
2
どのデザインを選択するかは関係ありません。それはあなた次第です。気にする必要があるのは、2つのスレッドが同じストリームに同時に書き込むのを避けることです。したがって、いくつかのスレッドで同期化され使用される独自のレイヤーを作成できます。あるいは、同期出力ストリームを作成してすべてのスレッドに渡すこともできます。これはおそらく最善のアプローチです:この場合、各スレッドはストリームにstuffを書き込むことを知っています。ストリームが同期されていることを知っている唯一のレイヤーは、それを作成するファクトリです。
関連する問題
- 1. Java並行性、親スレッドのフラグセット
- 2. Javaスレッド/並行性/デルタ - 1つのエラーでオフ
- 3. Spockでのスレッドの並行性のテスト
- 4. Rubyの並行性:ノンブロッキングI/Oとスレッド
- 5. 親ウィンドウとスレッドの親和性
- 6. Javaの並行性 - メソッド上だけ?
- 7. Javaの並行性:奇妙な出力
- 8. Javaでの並列スレッド
- 9. Javaの並列性
- 10. Java Swing並行性表示JTextArea
- 11. Linuxの並行性:クリティカルゾーンの2つのスレッドの代替アクセス
- 12. Java並列計算/スレッド
- 13. 並行スレッドの制限
- 14. jQuery - 並行性?
- 15. WCF並行性?
- 16. HashTable並行性
- 17. Javaスレッドの可視性
- 18. JSF並行性の問題
- 19. JS&並行性の問題?
- 20. RejectedExecutionExceptionとClojureの並行性
- 21. フレックスとデータの並行性
- 22. tbb並行コンテナの性能
- 23. Javaの並行性:Webサービスへのスレッドセーフの作成
- 24. Haskellの並行性と永続性
- 25. JTextAreaのループでJavaスイングの並行性を表示するテキスト
- 26. Javaの並行性 - スレッドを正しくロックして再読み込みする方法
- 27. C#並行性とエージェント
- 28. Django - Postgresql:トランザクションと並行性
- 29. Javaスレッドを使用して並行性から順次アクセスに切り替える
- 30. Python-C APIの並行性の問題