1. 程式人生 > >執行緒範圍內共享變數的概念與作用

執行緒範圍內共享變數的概念與作用


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的區域