Javaソケットサーバを構築するときにioとnioの違いについて過去数日間読んでいました。私の使用のために、私は多くの接続とトリックを行うことになっているイオンを実行することができるサーバーが必要です。 私の唯一の懸念は、接続ごとにスレッドを実行するのではなく、少し遅くて実装するのが少し難しいということです。だから、なぜ私は、スレッドの同じ容易さとjava.nioのロジックを使用しないで、サーバーを構築するには、開いているすべての接続をチェックするスレッドがあり、新しいイベントがあるときは、それを渡すための新しいスレッドを開きます。私はそのように世界の両方を楽しんでいると思います...あなたは何を提案しますか?ソケットサーバ用の自分自身のjava.nioを実装しています
答えて
NIOはほとんどすべてJNIに依存しているので、もう一度実装するには、実際にはC/++およびOS APIインターフェイスコードの負荷を書き込む必要があります。
私は既存のJavaの実装はすでにかなり良いと思います。たとえば、Selectorクラスは、複数のファイル記述子で待機するシステムコールをラップします。それを効率化するためにできることはほとんどありません。
NIOは、1つのスレッドのみを使用する点を理解していないことをお勧めします。それは確かに複雑で、あなたが1,000人以下のクライアント、おそらく10,000人、場合によっては100,000人も必要とするかどうかは議論の余地があります。私はそれを実行してフェーズ2のためのjava.nioを保存するjava.netであなたのサーバーを実装し、あなたが本当にそれが必要であることを自分自身に証明する場合は、
編集:私は確かにあなた自身のローリングのこのコンセプトを忘れてしまいます。あなたはその仕事を過小評価しています(本当に正しく機能するにはSun 1.4.0、1.4.1、1.4.2が必要でした)。そして、あなたは両方の世界で最悪のものを目指しているようです。 Sunがjava.nioで行ったより多くのことが、もう存在しないので、それ以上のものを得ることはできません。おそらく少し少ない;-)
まずは良いアイデアです。 2番目はすべて1つのスレッドで行うことができます。ニオは何をしていないのですか?テクスチャごとに新しいスレッドを実行し、それを終了させますか? –
@AsafNevo java.netとの接続ごとに別のスレッドが必要です。 – EJP
- 1. 私自身のDBGridを実装する
- 2. Linux C - プログラムが自分自身を更新する能力を実装する
- 3. Webブラウザが自分自身を処理していません
- 4. Java - 自分自身を閉じて自分のソフトウェアカーネルパニックなどの自分自身を再起動するにはどうすればいいですか?
- 5. ログインフォーム自分自身に戻ってリダイレクト
- 6. クラスを自分自身のメンバーとして宣言する
- 7. 自分自身のPHP mvcフレームワークのhtaccess
- 8. 自分自身のディレクトリ内のUnauthorizedAccessException
- 9. 私は自分自身のリストビューを提示します。
- 10. セッションはopeninviterで自分自身のログインを維持します
- 11. ボタンは自分自身のサイズを変更しますか?
- 12. 私のゲームは自分自身を果たしていますか?
- 13. 自分自身を返すRubyメソッド
- 14. 自分自身への参照wsdl url
- 15. Spring MVC +自分自身のセキュリティモデル
- 16. 自分自身の「並べ替え」ボタン
- 17. FOSUserBundle Symfony2のでFOSUserBundleを使用して自分自身のテーブルとの関係
- 18. Makefileが自分自身をターゲットとして追加する
- 19. 自分のアンドロイドデバイスが自分自身をリセットしているのはなぜですか?
- 20. ファイルはJavaで自分自身をコピーします
- 21. MySQLクエリ - カウント自分自身を参照していないレコードの数
- 22. プログラムは自分自身のコピーを出力できます
- 23. Owl Carousel 2は自分自身を設定して、
- 24. 自分自身で生成したapkをインストールできない
- 25. スレッドは自分自身とメインスレッドで実行シーケンス
- 26. 引数を自分自身に適用する関数?
- 27. なぜ自分自身のメソッドでwithRest()をラップしてクロージャを実行できないのですか?
- 28. Cufonがすべてに自分自身を追加する
- 29. 自分自身の静的ライブラリをリンクできません
- 30. カスタムメンバーシッププロバイダまたはロールは私自身の実装
nettyやgrizzlyのような高性能なnioライブラリが複数ありますが、これはうまくいくはずです。 – Bill