訪問共享變數

2021-07-11 23:16:26 字數 994 閱讀 4719

啟動四個執行緒,兩個執行緒對i加1,兩個執行緒對i減1。

如果多個執行緒共享同乙個變數,且對變數的操作相同,則可以通過實現runnable介面實現

為簡單起見,對方法進行同步,而不是對操作共享變數的**塊同步

public class main 

}class myrun implements runnable catch (interruptedexception e)

}}

如果多個執行緒對共享變數操作,且對變數的操作不同,如題所述,兩個執行緒對變數加,兩個執行緒對變數減,則不能用上面的方式。可以使用內部類實現,若使用靜態內部類,則只能共享外部類靜態變數,若使用非靜態內部類,則可以共享外部類的成員變數和靜態變數

public class main5 

public class mythread implements runnable

@override

public void run() catch (interruptedexception e)

synchronized (mythread.class) else }}

}}

}

若不使用靜態內部類,則可以把共享變數當執行緒類的成員變數,建立執行緒物件的時候把共享變數當引數傳遞進去

public class main 

}class mythread1 extends thread

public void run()

try catch (interruptedexception e)

} }}class num

}

注意,上述**中的num物件,不可直接用integer物件,因為

integer是不可變類,給構造器傳參是傳遞引用值,修改形參所引用的物件,並不能修改原始變數引用的物件。而新建立的num類是可變類,可以直接修改num的成員變數,而沒有改變形參引用值。

目錄訪問共享C 怎麼訪問共享目錄

本文是一篇關於目錄訪問共享的帖子 用c 訪問共享目錄老是湧現許可權問題,讓人很頭疼,研究了良久找到一種方法,貼上 public class identityscope idisposable else finally protected virtual void dispose bool dispo...

python使用鎖訪問共享變數

usr bin env python import threading,time q threading.lock create a lock object def mythread global a q.acquire acquire the lock a threading.currentthr...

10 共享訪問不到 如何訪問共享

一是在網路中,找到要訪問的那台電腦,雙擊開啟 二是直接在 開始 執行 中,輸入想要訪問的電腦的計算機名或ip位址。在網路中找到電腦訪問,需要同一區域網中的電腦數量要少於10臺,才好。如果電腦過多,這樣訪問就比較慢了。共享,先說下吧。就是說,我電腦中,有檔案,想要其他人的電腦可以看到,那麼,我可以建乙...