本篇文章為大家展示了Java并發(fā)中如何證明偏向鎖,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)公司主營修水網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app軟件開發(fā),修水h5小程序設計搭建,修水網(wǎng)站營銷推廣歡迎修水等地區(qū)企業(yè)咨詢
glibc版本: ldd --version
gcc 安裝: yum -y install gcc
檢查yum中openjdk版本: yum search java | grep -i --color jdk
openjdk 安裝: yum install -y java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
系統(tǒng)環(huán)境版本:
yum -y install lrzsz
fprintf(stderr,"msg tid=%lu\n",pthread_self());
添加此包,不要忘記
#include
未來任何線程調(diào)用pthread_mutex_lock()都會打印msg tid=123456677(tid)
修改權限664 --> chmod -R 664 pthread_mutex_lock.c
執(zhí)行命令:../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
--disable-profile 參數(shù):編譯庫但不包含分析信息。如果臨時工具需要分析信息則忽略此選項。
--enable-add-ons 參數(shù):指示 Glibc 使用附加的 NPTL 包作為線程庫。
--with-headers=/usr/include 參數(shù):告訴 Glibc 利用剛剛安裝在 usr 文件夾中的頭文件編譯自身,此能夠根據(jù)內(nèi)核的具體特性提供更好的優(yōu)化。
--with-binutils=/usr/bin 參數(shù):指定Binutils 程序目錄路徑。這個參數(shù)并不是必需的,但它們能保證在編譯 Glibc 時不會用錯 Binutils 程序。
有些安裝方法是編譯時候指定的目錄不是/usr,而是通過建立軟鏈指向新的libc-2.18.so版本,在此過程中需要刪除原來連接,建立新的軟連接,但是此處有一個大坑,就是當你刪除libc.so.6之后會導致系統(tǒng)命令不可用。
編譯: make
編譯: make install
編譯結(jié)果: 測試下
說明 到此已經(jīng)成功了,下面看看當前glibc版本: ldd --version
當前版本就是我上傳的 glibc 2.1.9。
int pthread_mutex_init (pthread_mutex_t *__mutex,const pthread_mutexattr_t *__mutexattr)創(chuàng)建一個鎖;
int pthread_mutex_destroy (pthread_mutex_t *__mutex)銷毀鎖;
int pthread_mutex_trylock (pthread_mutex_t *__mutex)嘗試去lock,lock不到時立即返回錯誤;
int pthread_mutex_lock (pthread_mutex_t *__mutex)嘗試去lock,lock不到時永久等待;
int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime)嘗試去lock,lock不到時等待__abstime的時間;
int pthread_mutex_unlock (pthread_mutex_t *__mutex)釋放一個鎖;
int pthread_mutexattr_init (pthread_mutexattr_t *__attr)初始化鎖參數(shù);
int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)銷毀鎖參數(shù)
int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,int __pshared)設定鎖的進程共享屬性;
int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)設定鎖的加鎖類型;
int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,int __protocol)設定鎖對線程優(yōu)先級的影響策略;
看到上面這面方法名字是不是狠親切,跟java j.u.c 里面方面是不是很像
上述內(nèi)容就是Java并發(fā)中如何證明偏向鎖,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。