1.web應用中,要對某一個任務用多線程實現,最簡單的代碼格式是否是必須把要執行的代碼放在run方法中?
WEB服務器會幫你把每一個訪問請求開闢一個線程,你只要按照你所開發的框架,好比tomcat會讓你利用servlet這個框架來寫代碼。具體真的一言難盡,反正不用寫到RUN中,除非你想對線程控制到極致,例如你要作測試。
2.部署在服務器上的一個網站,多個瀏覽器在訪問同一個功能點時,存在多線程之說嗎?
多個瀏覽器的意思若是是(不管多臺電腦上仍是同一臺電腦上的)多個頁面打開同一網站的某個功能頁面,那麼如第一個問題所說,每一次訪問(即打開頁面)都是一個請求,服務器會爲每一個請求開闢一個線程,就是多線程。
3.多線程和併發之間是怎麼一種關係?
多線程執行效率就是評判併發效果的好壞,高併發的概念就是在保證數據準確的狀況下,減小進程所需操做的時間,特別經典的是頁面訪問服務器後,讓服務器去修 改數據庫,若是你的數據庫優化作的到位,那麼查找數據並返回給客戶端的時間將大大減小,咱們知道對於一個熱門網站的查詢量是很是大的,而後一個服務器內存 能夠接收的進程數量也是有限的,這樣一來,咱們就說某一時間段內處理線程(訪問請求)越多,那麼併發效率就越好了。
4.對於經典的買票程序,是由於要操做共同資源而是用多線程技術,那麼對於一些日常的查詢顯示功能就不必用多線程技術。對於這裏發起的多個查詢請求,是多個線程嗎?
買票程序應用與WEB就應該是多線程,共同資源存放在數據庫中,和第三個問題的回答相似,這種商業性的站點更側重於保證數據準確性,有時候咱們修改的某項 值會影響到別人的查詢與增刪,因而意外狀況就產生了,例如在一個A線程(用戶)正在修改某項值(買票)的狀況下,要減小1張的剩餘票總量是不許確的,由於 當這個用戶在方法中對得到的總剩餘票數的同時(以得到總剩餘票數,但還未減一),另外一個B線程(用戶)也進行買票,那麼B得到的總剩餘票數與A是相同的, 所以他們若是同時被容許操做數據庫的公共資源,那麼當兩人都只想完購票的減一操做時,第三線程或其餘線程的查詢剩餘票量將只會看到本來減小2張剩餘量,實 際只少了一張,能夠想象若是操做的線程越多,偏差將會更大。所以數據庫纔會有事務,鎖等等概念來提升確保數據準確性前提下的併發效率。web
初次接觸,僅限於瞭解。數據庫