更新时间:2022-08-22 12:05:26
fork()
產生一個 Process 處理。pthread_create()
產生一個 Thread 處理。fork()
的問題在於每一個 Connection 進來時的成本太高。fork()
一隻新的」。最有名的例子是 Apache 1.3。select()
與 poll()
的效率過慢,造成每次要判斷「有哪些 Event 發生」這件事情的成本很高,這在 BSD 支援 kqueue()
、Linux 支援 epoll()
、Solaris 支援 /dev/poll
後就解決了,但這兩組 Function 都不是 Standard,於是在不同的平台上就必須再改一次。write()
或是 send()
時滿了需要自己 Buffering。fgets()
或是其他類似的 function,於是需要自己刻一個 Nonblocking 的 fgets()
。但是使用者所丟過來的資料又不能保證在一次 read()
或 recv()
就有一行,於是要自己做 Buffering。