2011-02-03 61 views

回答

2

線程作爲用戶交互的一部分被觸發嗎?如果沒有,那麼最好在網站外部運行,比如說通過Windows調度程序。

IIS使用線程來處理入站請求。因此,啓動大量線程可能會影響IIS處理新請求的能力。這篇文章可以幫助

Threadpool in IIS context

如果你響應用戶的輸入,那麼你不會真的打亂你的網站。網站往往比CPU綁定更多的內存限制,所以CPU通常可以處理一些額外的線程。

Simon

0

如果您使用ThreadPool創建工作項目,那麼是的,這將直接帶走一個線索,否則這個線程將用於爲您的網站提供請求,但使用線程不會影響您的網站爲請求提供服務的能力,太多吃掉cpu或io的線程會嚴重降低網站的響應速度。您要尋找的就是這個甜蜜點,您可以從中獲得多線程的好處,而無需爲您的站點提供足夠的資源來響應請求。

1

線程的結構影響有限,當它沒有做任何事情(〜1MB內存),但它確實有衝擊時:

  • 有很多線程,操作系統必須在它們之間不斷切換。只有這麼多的線程可以同時運行,所以他們必須輪流。如果有很多線程,那麼管理和交換會導致相當大的開銷。
  • 線程正在做很多工作,所以他們使用的資源是爭用的,例如, CPU和磁盤。

您的線程在與您的網站相同的硬件上運行,因此它將佔用資源份額。如果你有很多核心,那麼一個繁忙的線程不應該引起太多問題,除非你有一個非常繁忙的網站。可能更多的問題是您的線程正在錘擊磁盤驅動器。這種資源往往不能很好地處理併發訪問。如果你的網站不需要磁盤訪問,這不是一個問題。

如果您的線程偶爾會下載CSV文件並將其切碎到數據庫中,那麼與您的網站同時運行應該沒有問題。

相關問題