訂票系統(tǒng)差不多是我們最熟悉的一個(gè)關(guān)于線程并發(fā)的問題,如何做到多個(gè)售票窗口同時(shí)售票而不會(huì)導(dǎo)致將同一張票賣給多個(gè)旅客,首先很直觀 的一點(diǎn)就是當(dāng)我們把售票余量的增減弄成一個(gè)事務(wù),如此一來在增減票余量的代碼執(zhí)行的時(shí)候只能允許一個(gè)線程操作也就是出票只能是總部出票,那么一個(gè)簡(jiǎn)易的模型就出來了。

  首先所有車票(虛擬票使用票號(hào)代替)都存放在總部,在總部只需完成接收售票點(diǎn)的出票請(qǐng)求來完成增減票余量并產(chǎn)生唯一票號(hào)分發(fā)給售票點(diǎn),然后各售票點(diǎn)將票賣給旅客(所以這個(gè)模型的通俗的理解就是各個(gè)售票點(diǎn)代替旅客去售票總部排隊(duì)申請(qǐng)出票,這樣就不會(huì)出現(xiàn)同一張票賣給多個(gè)旅客),這也就是同步與互斥的一個(gè)案例吧。

  這里講解一個(gè)使用Java實(shí)現(xiàn)這個(gè)案例的代碼吧

  很明顯這里各個(gè)售票點(diǎn)銷售的都是售票總部的票余量,所以各個(gè)售票點(diǎn)需要共享票余量這個(gè)變量。因而我們可以創(chuàng)建一個(gè)售票窗口類

  

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

我想了解如何學(xué)習(xí)

姓名:
手機(jī):
留言: