執行緒範圍內共享變數的概念與作用
package cn.cblue.heima2; import java.util.HashMap; import java.util.Map; import java.util.Random; /** * @Description: 執行緒範圍內資料共享 * @author huangzjb [email protected] * @Company Digital China * @date 2014-5-28 下午08:42:21 * @version 1.0 */ public class ThreadScopeShareData { private static int data; private static Map<Thread, Integer> threadData = new HashMap<Thread, Integer>(); public static void main(String[] args) { for (int i = 0; i < 2; i++) { new Thread(new Runnable() { public void run() { data = new Random().nextInt(); threadData.put(Thread.currentThread(), data); System.out.println(Thread.currentThread().getName() + " has put data : " + data); new A().get(); new B().get(); } }).start(); } } static class A { public void get() { System.out.println("A from " + Thread.currentThread().getName() + " get data : " + threadData.get(Thread.currentThread())); } } static class B { public void get() { System.out.println("B from " + Thread.currentThread().getName() + " get data : " + threadData.get(Thread.currentThread())); } } }
相關推薦
05_張孝祥_Java多執行緒_執行緒範圍內共享變數的概念與作用
概念 可以將每個執行緒用到的資料與對應的執行緒號存放到一個map集合中,使用資料時從這個集合中根據執行緒號獲取對應執行緒的資料,就可以實現執行緒範圍內共享相同的變數。 程式碼 Runnable中的run()方法裡面執行Thread.currentThrea
執行緒範圍內共享變數的概念與作用
package cn.cblue.heima2; import java.util.HashMap; import java.util.Map; import java.util.Rando
Java多執行緒之執行緒範圍內共享變數的概念與作用
要實現執行緒範圍內的資料共享,就是說不管是A模組還是B模組,如果它們現在在同一個執行緒上執行,它們操作的資料應該是同一個,下面的做法就不行: package javaplay.thread.test; import java.util.Random; public
多執行緒與併發----執行緒範圍內共享變數
執行緒範圍內共享資料圖解:mport java.util.HashMap; import java.util.Map; import java.util.Random; public class Th
JAVA 併發程式設計-執行緒範圍內共享變數(五)
執行緒範圍內共享變數要實現的效果為:多個物件間共享同一執行緒內的變數未實現執行緒共享變數的demo:package cn.itcast.heima2; import java.util.HashMap; import java.util.Map; import java.u
(三) Java多執行緒詳解之執行緒範圍內共享變數及ThreadLocal類使用
執行緒範圍內共享變數 HashTable方式實現 在開發中經常會遇到一種情況:有一個變數會被多個執行緒訪問,但是要確保同個執行緒內訪問的是同一個物件,Hashtable方式實現程式碼如下: public class ThreadExample5 {
android 執行緒範圍內共享變數以及ThreadLocal的使用
執行緒在java中是一個重頭戲,算是比較難的一快,特別是併發哪一塊,關於併發這一塊,專案上幾乎也沒用到,今天是講執行緒範圍內的共享變數,突然聽到這個概念,可能心裡有點發愣,打個簡單比方:有三個執行緒,
ThreadLocal實現執行緒範圍內共享變數
1.多執行緒範圍內訪問共享物件和資料的方式。 1).如果每個執行緒要執行的程式碼一樣,可以使用同一個Runnable物件,這個Runnable物件中有共享資料,例如:買票系統。 2).每一個執行緒要執行的程式碼不一樣,這樣就需要使用多個Runnable物件了。有以下幾
Java併發庫(五、六、七):執行緒範圍內共享資料、ThreadLocal、共享資料的三種方法
深切懷念傳智播客張孝祥老師,特將其代表作——Java併發庫視訊研讀兩遍,受益頗豐,記以後閱 05. 執行緒範圍內共享變數的概念與作用 執行緒範圍內共享資料圖解: 程式碼演示: class ThreadScopeShareData { 三個模組共享資料,主執
ThreadLocal實現執行緒範圍的共享變數
這裡先說下ThreadLocal不是一個執行緒的本地實現版本,不是一個Thread,它是thread local variable(執行緒區域性變數);用於實現執行緒內的資料共享,即對於相同的程式程
執行緒範圍內共享資料(一)
Java開發過程中,若單個執行緒需要在多個物件與模組中訪問同一個變數,則通過靜態變數就可以實現,那麼問題來了,當存在多個執行緒,多個物件與模組去訪問同一變數時,就不行了。例如 public class
多執行緒併發庫高階應用 之 執行緒範圍內共享資料
筆記摘要: 所謂執行緒範圍內共享資料,即對於相同的程式程式碼,多個模組在同一個執行緒中執行時要共享一份資料,而在另外執行緒中執行時又共享另外一份資料, API中為我們提供了一個操作執行緒範圍內共享資料的類ThreadLocal,對於執行緒範
java多執行緒併發庫高階應用 之 執行緒範圍內共享資料
轉自:http://blog.csdn.net/xushuaic/article/category/1335611 筆記摘要: 所謂執行緒範圍內共享資料,即對於相同的程式程式碼,多個模組在同一個執行緒中執行時要共享一份資料,而在另外執行緒中執行時又共
ThreadLocal 執行緒範圍內的共享變數
package cn.itcast.heima2; import java.util.HashMap; import java.util.Map; import java.util.Random; //執行緒範圍內的共享變數 public class ThreadLoc
ThreadLocal執行緒範圍內的共享變數
資料庫connection和strut2每個請求用到ThreadLocalimport java.util.Random; public class ThreadLocalTest { private static ThreadLocal<Integer>
java多執行緒:4、執行緒範圍內的資料共享_公共變數
直接上例項,注意事項已經在程式中做了註釋,以此共勉。加油 import java.util.Map; import java.util.Random; import java.util.concu
多執行緒學習----執行緒範圍內的共享資料(五)
執行緒範圍內的共享變數舉例: 建立三個執行緒,它們都訪問了三個物件,第一個物件設定值,第二三個物件取值,同一個執行緒設定的值,只能被相同的執行緒獲取, public class ThreadScopeShareDataStudy { private static int da
執行緒(五)ThreadLocal解決執行緒範圍內資料的共享
1、該方法缺點是隻能放入一個數據 package 多執行緒; import java.util.Random; //ThreadLocal來完成執行緒範圍內資料的共享 public class pthread { private static ThreadLoca
python程序與執行緒中以及共享變數容易出現的資源爭議以及處理。
首先要說明一下資源共享一般是發生在一個程序中的不同執行緒中,當多個執行緒同時訪問同一個變數時容易產生共享變數的問題。 程序(Process):普通的解釋就是,程序是程式的一次執行。 執行緒(Thread):執行緒可以理解為程序中的執行的一段程式片段。 那麼就是說程序中包含N多個執行緒。可以簡單理解為一個
多執行緒(三) 實現執行緒範圍內模組之間共享資料及執行緒間資料獨立(ThreadLocal)
ThreadLocal為解決多執行緒程式的併發問題提供了一種新的思路。JDK 1.2的版本中就提供java.lang.ThreadLocal,使用這個工具類可以很簡潔地編寫出優美的多執行緒程式,ThreadLocal並不是一個Thread,而是Thread的區域