天天看點

java在子線程與主線程傳遞資料(回調函數)

java在子線程與主線程傳遞資料

1.代碼中用到的類介紹

c:擁有兩個方法分别是設定value和獲得value,擁有一個私有變量value。

mythread:子線程

thread:主線程

2.功能說明

在主線程中對類c的執行個體c的value進行設定,然後輸出c.value

開啟子線程,通過構造函數傳入c的執行個體c,在子線程中改變c.value的值

子線程中調用主線程的靜态方法傳遞資料給主線程說明子線程執行結束

子線程結束後在主線程中檢視c.value

預習知識點:

什麼是回調函數?

下面是知乎大神的回答,簡直不能再精辟

java在子線程與主線程傳遞資料(回調函數)

代碼:

java在子線程與主線程傳遞資料(回調函數)

思考:很多博文說java隻有值傳遞沒有引用傳遞,可是實踐來看上述代碼中的 c 就是類似c#通過引用傳遞給了子線程,子線程和主線程操作的是同一個類執行個體,c作為參數傳遞給子線程的時候并沒有建立c的副本。不過也有博文說是java對象傳遞的是對象的位址,是以是值傳遞,沒再去深究,貌似隻是說法的問題,有空去看看源碼深入了解下。

參考資料:

<a target="_blank" href="http://blog.csdn.net/asialyf/article/details/49936309">http://blog.csdn.net/asialyf/article/details/49936309</a>

<a target="_blank" href="http://www.cnblogs.com/coderworld/p/java-thread-return-information.html">http://www.cnblogs.com/coderworld/p/java-thread-return-information.html</a>