成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java并發(fā)編程實(shí)例分析

java并發(fā)編程是java程序設(shè)計(jì)語(yǔ)言的一塊重點(diǎn),在大部分的業(yè)務(wù)場(chǎng)景中都需要并發(fā)編程。

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)瓊結(jié)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

比如:并發(fā)的去處理http請(qǐng)求,這樣就可以使得一臺(tái)機(jī)器同時(shí)處理多個(gè)請(qǐng)求,大大提高業(yè)務(wù)的響應(yīng)效率,從而使用用戶體驗(yàn)更加流暢。

java如何并發(fā)編程,要注意以下幾個(gè)方面:

1、java語(yǔ)言中的多線程操作:創(chuàng)建和啟動(dòng)線程的幾種方式。

2、共享變量的同步問(wèn)題,要保證線程安全,辨別哪些變量是線程安全的、那些變量是線程不安全的,對(duì)于不安全的變量我們要想辦法讓其同步,一般也就是加鎖。

3、線程鎖:包括方法鎖和synchronized塊的使用。

接下來(lái)就詳細(xì)說(shuō)一下這幾個(gè)方面。

首先說(shuō)創(chuàng)建線程的方式:一般有兩種方式

定義一個(gè)線程類:實(shí)現(xiàn)Runnable接口、或者繼承Thread,推薦是實(shí)現(xiàn)接口的方式。

java并發(fā)編程實(shí)例分析

java并發(fā)編程實(shí)例分析

啟動(dòng)線程的方式:

第一種:new Thread()的方式。

創(chuàng)建好的線程,然后通過(guò)new的方式啟動(dòng)線程,因?yàn)閯?chuàng)建方式的不同,他們啟動(dòng)的方式也略微有些差別。

第二種:通過(guò)線程池的方式啟動(dòng)線程。JavaAPI提供了線程池技術(shù),可以用池的原理,

去管理線程,池的技術(shù)在java中很常見(jiàn),比如數(shù)據(jù)庫(kù)連接池等。

具體細(xì)節(jié)可以參考如下的連接:

java并發(fā)編程實(shí)例分析

共享變量的問(wèn)題:要明白什么變量最有可能出現(xiàn)線程安全問(wèn)題。沒(méi)錯(cuò)就是靜態(tài)變量,靜態(tài)變量

相當(dāng)于C語(yǔ)言的全局變量,如果是public類型,誰(shuí)都可以修改,所以這個(gè)時(shí)候就會(huì)出現(xiàn)

變量的線程安全問(wèn)題。當(dāng)然了私有變量也可能出現(xiàn)線程安全問(wèn)題。

具體細(xì)節(jié)可以參考如下的連接:

java并發(fā)編程實(shí)例分析

主要來(lái)說(shuō)一下線程鎖的兩種方式:

(1)首先定義一個(gè)MyBusiness類,此類中頂一個(gè)一個(gè)靜態(tài)變量i,和一個(gè)靜態(tài)方法,靜態(tài)方法的功能是讓i加1。

java并發(fā)編程實(shí)例分析

(2)然后定義一個(gè)線程類MyThread2,run方法中先讓線程sleep 2毫秒,然后執(zhí)行加1操作。

java并發(fā)編程實(shí)例分析

(3)定義測(cè)試類,測(cè)試類創(chuàng)建6000個(gè)MyThread2線程,然后sleep 1秒鐘,執(zhí)行輸出,顯示i的值。

java并發(fā)編程實(shí)例分析

(4)結(jié)果:從結(jié)果可以看出,此時(shí)出現(xiàn)了線程安全問(wèn)題,就是說(shuō)某些線程在加1操作時(shí)取到了臟數(shù)據(jù),即

在某一個(gè)時(shí)間點(diǎn),多個(gè)線程同時(shí)取到了某個(gè)相同的i值,然后去修改,結(jié)果導(dǎo)致在這幾個(gè)線程中,只有最后一個(gè)

修改生效,而其他的則被覆蓋掉了。

java并發(fā)編程實(shí)例分析

(5)解決方案一:方法鎖,給add方法加鎖,表示同一時(shí)間只能有一個(gè)方法的調(diào)用被允許運(yùn)行,其他的線程等待鎖的釋放。

再次運(yùn)行,發(fā)現(xiàn)變成了6000就是正確的了。

java并發(fā)編程實(shí)例分析

java并發(fā)編程實(shí)例分析

(6)解決方案二:synchronized代碼塊,我們重新定義一個(gè)方法add1,然后用synchronized代碼塊鎖上MyBusiness類,

表示同一時(shí)間只能有一個(gè)線程操作MyBusiness類,其他線程必須等待鎖的釋放。

java并發(fā)編程實(shí)例分析

java并發(fā)編程實(shí)例分析

(7)查看結(jié)果,也得到了正確的輸出。

java并發(fā)編程實(shí)例分析

本文名稱:java并發(fā)編程實(shí)例分析
標(biāo)題來(lái)源:http://jinyejixie.com/article10/pdcsdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航商城網(wǎng)站、、ChatGPT電子商務(wù)、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
临高县| 宣恩县| 时尚| 米脂县| 鹤峰县| 湛江市| 通海县| 千阳县| 民权县| 锦州市| 甘肃省| 泸水县| 济源市| 光山县| 广宗县| 宁强县| 铁力市| 延长县| 德保县| 呼玛县| 旬阳县| 阆中市| 彭阳县| 济阳县| 石门县| 千阳县| 山丹县| 喀喇沁旗| 丰台区| 梅河口市| 平远县| 江达县| 龙陵县| 宜君县| 合山市| 阳信县| 博罗县| 七台河市| 临江市| 和田县| 嵩明县|