很明顯,一個servlet可以同時處理多個請求。例如,在服務器(一個套接字)上建立一個連接,爲了處理這個連接,服務器創建一個新的線程,線程調用servlet的doGet,並去做一些事情。當它正在做另一個請求到達時。一個新的線程會調用其他httpRequest和httpResponse實例的doGet。我使用netbeans和glasfish做了測試。在一個servlet的的doGet我把:似乎只有一個線程處理Servlet中的所有請求
synchronized(obj){
try{
obj.wait(50000)
}catch(InterruptedException e)
{
}
當第一個請求到達時,servlet不接受任何請求,直到50秒。這意味着對於後面的請求被捕獲,前一個線程必須完成它的工作並返回到另一個請求。可以肯定的是,這不是因爲同步語句,我在同步之前在某個語句上放置了一個斷點,但從未到達過。