簡體   English   中英

靜態方法如何在Java中的多線程中並行或並行運行

[英]How static methods runs concurrently or parallely in multithread in java

我讀過,靜態方法存儲在JVM的類區域中。 因此我們只有一個靜態方法的副本。 誰能解釋Java中靜態方法如何針對多個請求(使用多線程)並行運行。

真的沒有什么可以解釋的。 靜態方法(或者實際上是實例方法)是code 線程用於執行代碼。 代碼存儲在哪里與線程無關。 您可以使用多個線程來執行相同的代碼。

可以把它想像成一張紙上的食譜。 如果您將食譜放在可以看到兩個人的軟木板上,則兩個人可以同時遵循食譜。 代碼就是配方; 軟木板是計算機內存中加載代碼的部分; 人是線。

發表您的評論

為每個創建的對象復制非靜態方法

不,不是。 沒有任何理由,其中沒有實例特定的信息。 每個對象分別存儲實例數據 ,但不存儲實例方法。

從本質上講,涵蓋了很多細節,實例方法只是一個靜態方法,但是在調用實例方法之前,JVM this實例設置為引用要調用該方法的對象,因此您可以使用this (顯式或隱式)與對象的實例數據進行交互。 this實際上只是該方法的不可見參數。 同樣,這掩蓋了許多細節,但這足以構成基本的理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM