多個執行緒 可以共享同乙個程序中的資源
多執行緒對程序中的 公共變數 進行同時訪問
如果不加鎖的時候,有可能訪問不到。
1 synchronize
本質 對具體物件的加鎖(類鎖:對類在虛擬機器中的class物件的加鎖)
物件鎖://保證物件的原子性
- 同步塊 加鎖
- 方法 加鎖
/**
*類說明:synchronized關鍵字的使用方法
*/public
class
syntest
public
void
setcount
(long count)
/*用在同步塊上*/
public
void
inccount()
}/*用在方法上*/
public
synchronized
void
inccount2()
/*用在同步塊上,但是鎖的是當前類的物件例項*/
public
void
inccount3()
}//執行緒
private
static
class
count
extends
thread
@override
public
void
run()}
}public
static
void
main
(string[
] args)
throws interruptedexception
}
2 volatile關鍵字,最輕量的同步機制
一寫多讀場景
import cn.enjoyedu.tools.sleeptools;
/** * 類說明:演示volatile的提供的可見性
*/public
class
volatilecase
}public
static
void
main
(string[
] args)
}
3 threadlocal的使用
執行緒的隔離 - spring 事物
每乙個執行緒都有變數的副本 每個執行緒 有擁有自己的threadlocalmap (可以看做map形式) 以實現執行緒的安全
等待和通知的標準正規化
等待:syn(物件)
//業務邏輯
}通知:
syn(物件)//當syn中全部執行完 才會釋放鎖
執行緒間共享資料
首先給大家分享乙個巨牛巨牛的人工智慧教程,是我無意中發現的。教程不僅零基礎,通俗易懂,而且非常風趣幽默,還時不時有內涵段子,像看 一樣,哈哈 我正在學習中,覺得太牛了,所以分享給大家!點這裡可以跳轉到教程 一 每個執行緒執行的 相同 若每個執行緒執行的 相同,共享資料就比較方便。可以使用同乙個run...
執行緒間的資料共享
執行緒間的資料共享可以通過兩種方式 通過thread子類建立程序的方法 通過runnable介面實現程序之間的共享 比較這兩種實現程序共享的區別 thread子類建立程序 package practice4 public class threadsale extends thread public ...
jMeter執行緒間cookie共享
在壓力測試下,有這樣的場景,需要獲取登陸後的sessionid給後面使用,解決思路 先登入一次,獲取cookie將其儲存到 jmeter 全域性屬性中,至此事情就好辦了 1 後置處理器使用正則獲取登陸後的sessionid 2 獲取cookie將其儲存至全域性屬性中 3 新增全域性http cook...