06/01/24 11:00:46 KzBEIj3y
>>52
どもども。
あのあと調べてみたんですが2のやりかたはselect()/poll()ってのを使うんですね。
でも大規模なものには向かない感じ?
スレッドが現在主流なんでしょうか。いくつかの資料にあたってみると
select()やfork()のやりかたも書いてあるけど大抵の場合、
最終的にこれからはマルチスレッドだ!って意見に落ち着いてるような。
Linuxの場合NPTL/LinuxThreadsという形でPthreadsを実装してるみたいですね。
ただまだ新しい機能のせいか今でもちょこちょこ仕様変更してるのが気になるところ…
あと気になったのがシステム的な限界。手持ちのLinuxの標準的な設定だと
開けるディスクリプタの上限:1024
同時起動できるプロセスの上限:なし
プロセスあたりのスレッドの上限:64
システム全体のスレッドの上限:16384(64スレッド*256プロセス?)
らしいのですが、1ユーザとの通信は1スレッド+1ソケットディスクリプタで
という考え方だとacceptを複数プロセスでやらない限りは、
1システムあたり64人しか同時接続できなくなるという解釈でいいのでしょうか。
各々協調作業するマルチスレッド+マルチプロセス+マルチシステムな知識が必須?