千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 同步在java中的應(yīng)用、java異步的使用

同步在java中的應(yīng)用、java異步的使用

來源:千鋒教育
發(fā)布人:syq
時間: 2022-08-10 14:24:42 1660112682

  本教程操作環(huán)境:windows7系統(tǒng)、java10版,DELL G3電腦。

同步在java中的應(yīng)用

  同步在java中的應(yīng)用

  1.概念

  是一種典型的請求-響應(yīng)模型,當(dāng)請求調(diào)用一個函數(shù)或方法后,需等待其響應(yīng)返回,然后執(zhí)行后續(xù)代碼。同步的特征便是「有序」,當(dāng)各個過程都執(zhí)行完畢,最后返回結(jié)果。

3.1

  2.同步原理

  當(dāng)有多個線程要同時訪問一個變量或?qū)ο髸r,如果這些線程中既有讀又有寫操作時,就會導(dǎo)致變量值或?qū)ο蟮臓顟B(tài)出現(xiàn)混亂,從而導(dǎo)致程序異常。

  舉個例子,如果一個銀行賬戶同時被兩個線程操作,一個取100塊,一個存錢100塊。假設(shè)賬戶原本有0塊,如果取錢線程和存錢線程同時發(fā)生,會出現(xiàn)什么結(jié)果呢?取錢不成功,賬戶余額是100。取錢成功了,賬戶余額是0,那到底是哪個呢?很難說清楚。因此多線程同步就是要解決這個問題。

  3.實例

  synchronized關(guān)鍵字

  使用synchronized關(guān)鍵字我們可以實現(xiàn)同步代碼塊

3.2

  java異步的使用

  1.概念

  異步編程是只發(fā)送了調(diào)用的指令,調(diào)用者無需等待被調(diào)用的方法執(zhí)行完畢,而是繼續(xù)執(zhí)行下面的流程。在一個多處理器或多核的環(huán)境中,異步調(diào)用是真正的并行執(zhí)行。

6

 

  2.應(yīng)用場景

  (1)充分利用計算機CPU資源,不讓主程序阻塞在某個長時間運行的任務(wù)上,從而優(yōu)化主程序的執(zhí)行時間;

  (2)異步編程 + NIO。NIO 技術(shù)本身現(xiàn)在已經(jīng)很成熟了,異步編程技術(shù)將 NIO 落地到系統(tǒng),尤其是業(yè)務(wù)快速迭代的前臺、中臺系統(tǒng)中。

  3.實例

  可以創(chuàng)建一個新線程來異步執(zhí)行任何操作。隨著Java 8 中l(wèi)ambda表達式的發(fā)布,它變得更干凈,更易讀。

  創(chuàng)建一個新的線程來計算和打印數(shù)字的階乘:

4.2

  以上就是在java中關(guān)于同步、異步的使用,在多個程序需要運行處理的時候,就可以選擇異步的方法去處理,對應(yīng)的同步也會為大家?guī)硪恍┲v解,可以關(guān)注和留意。更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗,課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT