前言,在支付系統專案中,運用了一些多執行緒的任務,現在此記錄學習一下,以備以後運用到,同時自己也理一下邏輯思想。
在專案中有這樣幾個需求,需要接受專案組中上游專案傳送過來的資料請求,請求包括了支付,同步,餘額,明細大體四個分支。在專案中因為上游是通過傳送特定的json字串,用http的請求,向我們的專案中發出請求操作,所以我們用多執行緒的思路來完成這幾個操作:
第一步:
建立乙個抽象的類asyncrequestexecutor ,同時實現runnable,在構造方法中例項化乙個非阻塞佇列concurrentlinkedqueue (先進先出);同時包括幾個方法putrequest(string date) ,該方法往佇列中add請求資料,notifywork():喚醒當前的執行緒,stopwork():停止工作,以及@override run方法,在run方法中獲得佇列中的資料,分析是4種操作的哪一種,進行工作。在這有點注意的是如何呼叫對應的執行緒,以及相應的方法進行操作?這裡我們要新增乙個抽象的方法operationimpl(string data).
第二步建立了4個 執行緒:payasyncrequestexecutor,querypayasyncrequestexecutor,balanceasyncrequestexecutor,detailasyncrequestexecutor ,這些執行緒不用再去寫自己的喚醒等方法,可以直接繼承自asyncrequestexecutor ,同時重寫其抽象方法operationimpl(string data)實現自己具體的邏輯
第三步建立asyncrequestthread 類,建構函式中 呼叫super 傳入group和 asyncrequestexecutor
第四步第五步
在***中contextinitialized的時候init執行緒,呼叫執行緒組的init方法,以及contextdestroyed關閉執行緒
java中線程問題
24.09 多執行緒 獲取名字和設定名字 掌握 1.獲取名字 通過getname 方法獲取執行緒物件的名字 2.設定名字 通過建構函式可以傳入string型別的名字 new thread start new thread yyy start 通過setname string 方法可以設定執行緒物件的...
JAVA中線程同步方法
在這裡看到的 1 wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要...
Java中線程應用總結
1.執行緒是基本排程單元。共享程序的資源,如記憶體和檔案控制代碼。但有自己的pc 程式計數器 stack 執行緒棧 及本地變數 2.執行緒的優勢 a 充分利用多處理器 b 可以簡化模型。特定任務給特定執行緒。如servlets及rmi等框架。c 對非同步事件的簡單處理。如socket,nio使用更複...