亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

人與人之間通過交流構(gòu)成了這個豐富多彩的世界,在計算機(jī)中,通過即時通信工具傳遞信息為我么的生活增添了很多樂趣也提供了很多遍歷,而在JAVA線程的世界里,線程之間的通信,可以極大的增強(qiáng)我們的功能,今天就帶你一塊走進(jìn)線程通信的世界里。

這篇文章是基礎(chǔ)入門文章,主要是wait和notify來解決單線程通信問題的。對于多線程通信極其實現(xiàn)方式我會在后續(xù)的課程中依次推出。不喜勿噴。

一、基本認(rèn)識

在講解java線程之間的問題時,我們先想一下,為什么需要線程之間的通信呢?我們舉一個例子:

愚公門前有座大山,想要移走,可是評價自己的力量肯定不夠呀,于是叫來了一伙人,一塊把這座山移走。

java中使用wait和notify進(jìn)行單線程之間的通信

 

以上這個簡單的案例就能夠表達(dá)我們的意思,也就是需要合作辦成某件事。在java中,我們想要完成某個功能,一個線程完成不了,這時候就需要兩個或者是多個線程一塊來完成了,多個線程一塊合作這時候就需要交流,也就是通信了。

通信的方式很多,比如說共享內(nèi)存、管道、mutex等等各種方式,不管是那種方式都是為了完成功能而已。

另外還有一個需要注意的問題,那就是什么是進(jìn)程間通信?我們同樣舉一個例子。

有兩個國家,國家內(nèi)部之間的交流就是線程間通信,兩個國家之間的交流就是進(jìn)程間通信。

java中使用wait和notify進(jìn)行單線程之間的通信

 

下面我們就來看看如何進(jìn)行通信。

二、單線程間通信實現(xiàn)

java解決單線程之間的通信很簡單,大致上有三種,我們依次來分析實現(xiàn)一下。這里要完成一個功能,那就是生產(chǎn)者和消費(fèi)者模型。假設(shè)我們想要完成的功能描述如下:

工廠生產(chǎn)完了東西之后,通知消費(fèi)者消費(fèi),在生產(chǎn)出來之前,消費(fèi)者等待。我們直接看實現(xiàn)方法。

java中使用wait和notify進(jìn)行單線程之間的通信

 

上面的這個生產(chǎn)消費(fèi)過程看起來完全沒毛病,我們就寫一下main方法中測試一下:

java中使用wait和notify進(jìn)行單線程之間的通信

 

也就是說我們開啟兩個線程,一個用于生產(chǎn),一個用于消費(fèi),沒毛病吧。那我們就運(yùn)行一下,看看結(jié)果。

java中使用wait和notify進(jìn)行單線程之間的通信

 

我們一下子把所有的全部生產(chǎn)出來了,但是消費(fèi)的時候消費(fèi)了最后一個而且還是重復(fù)消費(fèi)的。這就有問題了,我們明明想要的就是生產(chǎn)一個消費(fèi)一個,這時候怎么辦呢?這就用到了我們的等待通知模型。

java中使用wait和notify進(jìn)行單線程之間的通信

 

現(xiàn)在我們再來測試一下:

java中使用wait和notify進(jìn)行單線程之間的通信

 

我們再看一下測試結(jié)果吧。

java中使用wait和notify進(jìn)行單線程之間的通信

 

以上就是單線程之間通信最簡單的解決方法。當(dāng)然了單線程的通信肯定是不能滿足我們的日常需求的。而且對于上述問題我們還有很多其他的方式可以解決。這篇文章只是起到一個拋磚引玉的作用。

分享到:
標(biāo)簽:單線程 java
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定