我有一段比較常規的.net core mvc代碼,就是StartUp函數中註冊HttpContextAccessor到系統DI工廠中,如圖:多線程
而後調用方是service層,這個service層是使用autofac注入的,並且是單例注入,如圖mvc
service調用HttpContextAccesor如圖所示:函數
爲了測試是否存在線程同步問題,我使用了Thread.Sleep()方法,若是HttpContextAccesor裏面的內容被相互影響了,那麼後面打印出來的內容應該是同樣的,如圖:測試
可是事實上,打印出來的內容是不同的,說明HttpContextAccesor不存在着線程同步問題,如圖spa
這兩個數字表明着兩個用戶的id信息。.net
結論:線程
即便service使用了單例模式,可是在多線程的狀況下,HttpContextAccessor不會出現線程同步問題。3d