package cha02.execise02;/*** created by sunyifeng on 17/9/20.
*/public class hasselfprivatenum else
system.out
.println(username + " num = " + num);
} catch (interruptedexception e)
}}
package cha02.execise02;/*** created by sunyifeng on 17/9/20.
*/public class threada extends thread
@override
public void
run()
}
package cha02.execise02;/*** created by sunyifeng on 17/9/20.
*/public class threadb extends thread
@override
public void
run()
}
package cha02.execise02;執行結果:/*** created by sunyifeng on 17/9/20.
*/public class run
}
a set over:100
b set over:200
b num = 200
a num = 200
程式分析:
1、多個執行緒訪問乙個物件的例項變數,則可能出現「髒讀」(非執行緒安全)。
2、多個執行緒訪問乙個不同步的方法時,則可能出現「髒讀」(非執行緒安全)。
在方法前,加入synchronized之後即可同步。
synchronized public voidaddi(string username) else
system.out
.println(username + " num = " + num);
} catch (interruptedexception e)
}
例項變數與執行緒安全
public class mythread extends thread main方法跑一下 列印結果顯示,執行緒1,3,2列印的count的值都是3,產生了非執行緒安全問題。當thread 1執行count 時,分幾步完成 1 把count的值從主存中複製乙份到快取記憶體中 2 對count進行 ...
多執行緒 例項變數與執行緒安全
自定義執行緒類中的例項變數針對其他執行緒有共享和不共享之分,這在多個執行緒之間進行互動時是乙個很重要的技術點。不共享資料的情況 下面通過乙個示例來看下資料不共享的情況。package com.vhqimk.thread 測試資料不共享的情況 public class test class mythr...
使用執行緒安全的單個例項變數
importorg.slf4j.logger importorg.slf4j.logge ctory created by csj on 2017 3 24.非執行緒安全存在於例項變數,方法內部的私有變數不存在非執行緒安全問題,永遠都是執行緒安全的,這都是方法內部的變數是私有的特性造成的。如果多個執...