ดูเหมือนว่าเธรดของผู้ปฏิบัติงาน nginx สามารถจัดการการเชื่อมต่ออื่น ๆ ในขณะที่รอข้อมูลจากไคลเอ็นต์หรือในขณะที่บัฟเฟอร์เอาต์พุตเต็ม
https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/
แต่พวกเขาจัดการการเชื่อมต่ออื่น ๆ ขณะที่รอ PHP เพื่อสร้างผลลัพธ์
มีเอกสารอื่นเพิ่มเติมอีกหรือไม่ว่า nginx ทำงานภายในอย่างไร
สำหรับแอปเครือข่ายทั้งหมดค่อนข้างมากคู่ขอ / ตอบสนองแต่ละคู่แสดงเธรดของตนเอง (หรือแยกกระบวนการแทนการรันเธรดใหม่ภายในกระบวนการที่มีอยู่) ดังนั้นใช่หลายเธรดสามารถแสดงผลลัพธ์สำหรับการตอบสนองในขณะที่เธรดอื่น อยู่ในสถานะที่แตกต่าง (อาจจะได้รับอาจจะส่งคำตอบ ฯลฯ )
—
Frank Thomas
หมายความว่าเธรดเดียวกันซึ่งได้ร้องขอให้ PHP สร้างเอาต์พุตสามารถทำการเชื่อมต่ออื่น ๆ
—
wutzebaer
ไม่คำขอใหม่แต่ละรายการจะสร้างเธรดใหม่ (หรือกระบวนการแยกซึ่งฉันเชื่อว่าเป็นแนวทาง NginX) โดยเฉพาะสำหรับคำขอนั้นและการตอบกลับที่เกี่ยวข้องและจะเรียกใช้พร้อมกันในเวลาเดียวกันที่การตอบสนองก่อนหน้านี้ถูกสร้าง ซีพียูรันคำสั่งเธรดดังนั้นเธรดสามารถทำสิ่งเดียวได้ครั้งละอย่างแน่นอน กระบวนการอาจประกอบด้วยหลายเธรดที่ทำงานพร้อมกันบนซีพียู / คอร์ที่แตกต่างกัน แต่แต่ละเธรดกำลังทำสิ่งเดียวในแต่ละครั้ง เมื่อใดก็ตามที่ทำสิ่งต่าง ๆ ในแบบขนานมีหลายเธรดหรือหลายกระบวนการ (หรือทั้งสองอย่าง)
—
Frank Thomas
mh คุณอ่านเรื่อง nginx แล้วหรือยัง? คุณสมบัติหลักของ nginx คือการจัดการคำขอหลายรายการด้วยเธรดเดียว
—
wutzebaer
CPU ที่ไม่มีอยู่จริงสามารถทำได้ คุณเข้าใจผิดบางอย่าง
—
Frank Thomas