請問為什么這個獨占的session文件,會導致當前用戶的其他并發(fā)訪問無法執(zhí)行??
默認情況下,session是以文件形式存儲在服務器上的,因此當一個頁面開啟了session之后,會獨占這個session文件,這樣會導致當前用戶的其他并發(fā)訪問無法執(zhí)行而等待。
請問為什么這個獨占的session文件,會導致當前用戶的其他并發(fā)訪問無法執(zhí)行??在什么情況下會發(fā)生這種情況呢??
默認情況下,session是以文件形式存儲在服務器上的,因此當一個頁面開啟了session之后,會獨占這個session文件,這樣會導致當前用戶的其他并發(fā)訪問無法執(zhí)行而等待。
請問為什么這個獨占的session文件,會導致當前用戶的其他并發(fā)訪問無法執(zhí)行??在什么情況下會發(fā)生這種情況呢??
2019-02-24
舉報
2019-02-26
PHP默認的會話處理器是session.save_handler = files(即文件)。如果同一個客戶端同時并發(fā)發(fā)送多個請求(如ajax在頁面同時發(fā)送多個請求),且腳本執(zhí)行時間較長,就會導致session文件阻塞,影響性能。因為對于每個請求,PHP執(zhí)行session_start(),就會取得文件獨占鎖,只有在該請求處理結(jié)束后,才會釋放獨占鎖。這樣,同時多個請求就會引起阻塞。