Nó dành cho khái niệm chung, không phải dành cho Android cụ thể
Thông thường, mỗi người dùng gửi một yêu cầu HTTP cho trang. Máy chủ nhận các yêu cầu và ủy quyền chúng cho các nhân viên khác nhau (quy trình hoặc luồng).
Tùy thuộc vào URL được cung cấp, máy chủ đọc một tệp và gửi lại cho người dùng. Nếu tệp là tệp động, chẳng hạn như tệp PHP, tệp sẽ được thực thi trước khi được gửi lại cho người dùng.
Khi tệp được yêu cầu đã được gửi lại, máy chủ thường đóng kết nối sau vài giây.
Xem Cách máy chủ web hoạt động
CHỈNH SỬA:
Đối với HTTP, sử dụng TCP là một giao thức dựa trên kết nối. Tức là, các máy khách thiết lập kết nối TCP trong khi họ đang giao tiếp với máy chủ.
Nhiều máy khách được phép kết nối với cùng một cổng đích trên cùng một máy đích tại cùng một thời điểm. Máy chủ chỉ mở ra nhiều kết nối đồng thời.
Apache (và hầu hết các máy chủ HTTP khác) có một mô-đun đa xử lý (MPM). Điều này chịu trách nhiệm phân bổ các luồng / quy trình Apache để xử lý các kết nối. Các quy trình hoặc luồng này sau đó có thể chạy song song trên kết nối của chính chúng mà không chặn lẫn nhau. MPM của Apache cũng có xu hướng giữ các luồng hoặc quy trình "dự phòng" mở ngay cả khi không có kết nối nào được mở, giúp tăng tốc các yêu cầu tiếp theo.
Lưu ý:
Một trong những vấn đề phổ biến nhất với đa luồng là "điều kiện chủng tộc" - trong đó hai yêu cầu của bạn đang thực hiện cùng một việc ("chạy đua" để làm điều tương tự), nếu đó là một tài nguyên duy nhất, một trong hai yêu cầu sẽ giành chiến thắng. Nếu cả hai cùng chèn một bản ghi vào cơ sở dữ liệu, cả hai đều không thể có cùng một id - một trong hai người sẽ thắng. Vì vậy, bạn cần phải cẩn thận khi viết mã để nhận ra các yêu cầu khác đang diễn ra đồng thời và có thể sửa đổi cơ sở dữ liệu của bạn, ghi tệp hoặc thay đổi toàn cầu.