當前位置:編程學習大全網 - 編程語言 - 如何用JAVA實現異步信息處理

如何用JAVA實現異步信息處理

通常同步意味著壹個任務的某個處理過程會對多個線程在用串行化處理,而異步則意味著某個處理過程可以允許多個線程同時處理。異步通常代表著更好的性能,因為它很大程度上依賴於緩沖,是典型的使用空間換時間的做法,例如在計算機當中,高速緩存作為cpu和磁盤io之間的緩沖地帶協調cpu高速計算能力和磁盤的低速讀寫能力。

(1):重新啟動壹個java程序就啟動了壹個進程

可以用操作系統命令行啟動 Runtime.getRuntime().exec("java -classpath . XXX");

(2):可不可以在接收消息的模塊中的addtolist函數中添加壹個專門的處理函數,函數執行時先向list中添加消息,然後探測當前有沒有處理線程,如果沒有,則啟動線程。

(3):想省點工作,可以用BlockingQueue來代替list,這樣線程等待和喚醒不用寫代碼實現了,如果非要用list,那麽就做好同步

list的小例子:

Java codeclass MessageConsumer extends Thead { private List<YourMessageType> list; private boolean running = true; public MessageConsumer(List<YourMessageType> list) {this.list = list;} public void run() { while (running) { YourMessageType msg = null; try { synchronized(list) { while (list.size() == 0) { list.wait(); } msg = list.remove(0); list.notiryAll(); } } catch (Exception e) { e.printStackTrace(); } if (msg == null) continue; //System.out.println(msg); //print message } }}//調用sampleclass ShareModule { List<YourMessageType> list = new ArrayList<YourMessageType>(); ...}public class Main { public static void main(String[] args) { ShareMudule sm; //so on ... Thread t = new MessageConsumer(sm.list); t.start(); ... }}

  • 上一篇:自學編程用什麽語言好?
  • 下一篇:日照職業技術學院專業排名哪個專業好滿意度Top10
  • copyright 2024編程學習大全網