成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

開發(fā)中哪里用到多線程 實(shí)際工作中,什么場景會用到多線程開發(fā)?

最典型的應(yīng)用程序,如tomcat、tomcat,是多線程的,數(shù)百個客戶機(jī)訪問同一個web應(yīng)用程序。在Tomcat訪問之后,隨后的處理被拋出到一個新線程。新線程最終被調(diào)用到我們的servlet程序,比如

最典型的應(yīng)用程序,如tomcat、tomcat,是多線程的,數(shù)百個客戶機(jī)訪問同一個web應(yīng)用程序。在Tomcat訪問之后,隨后的處理被拋出到一個新線程。新線程最終被調(diào)用到我們的servlet程序,比如doGet或doPost。

如果我們不使用多線程機(jī)制,當(dāng)數(shù)百人同時訪問一個web應(yīng)用程序時,Tomcat將不得不排隊(duì)等待串行處理,因此客戶端根本無法忍受這種訪問速度。

還需要異步處理,您需要使用多線程。例如,任務(wù)a和任務(wù)B需要并行處理,單個線程只能串行處理。首先完成任務(wù)a,然后執(zhí)行任務(wù)B,如果要同時執(zhí)行多個任務(wù),必須為每個任務(wù)分配一個線程,然后通過Java虛擬機(jī)的線程調(diào)度,同時執(zhí)行多個任務(wù)。例如,如果您的CPU是多核的,那么您可以讓CPU執(zhí)行一個線程。如果只有一個CPU,底層基于分時復(fù)用的原則,每個線程根據(jù)時間片獲得CPU資源。

實(shí)際工作中,什么場景會用到多線程開發(fā)?

下面簡要說明以下原因:

鎖定是因?yàn)椴僮鞑皇窃拥?。讓我們用操作一來解釋它。看下面兩個圖。

我這個操作需要

看上面的第二個圖,你能很清楚地理解這個過程嗎?

鎖定是為了確保上述三個步驟是原子操作。

回到問題上來,只有一個線程要寫,沒有競爭,所以不需要鎖定。

但是,如果你看第一張圖片,因?yàn)橹鲀?nèi)存和本地內(nèi)存的存在

在一個線程寫入后,其他線程無法立即看到它。這就是可見性問題。

添加volatile關(guān)鍵字后,它將在操作后強(qiáng)制工作內(nèi)存和主內(nèi)存同步,以確保其他線程可以立即看到它。