1. 程式人生 > >Processing摸索前行(6)-在processing中實現多執行緒

Processing摸索前行(6)-在processing中實現多執行緒

由於我們在示波器中必須用到多執行緒,所以我們在實現示波器的動態獲取資料功能之前,中間插一篇有關processing多執行緒的探索內容。
雖然,表面上processing和arduino的封裝差不多,一開始都是一個setup,但我們知道要在arduino中實現多執行緒幾乎不可能,最常見的方法就是用中斷,而arduino中的中斷資源是有限的,比如串列埠通訊就使用了中斷資源,而且效果也不是太好(當然也有一些第三方的類庫表示可以模擬多執行緒,但畢竟在微控制器上模擬效果也好不到哪裡去)。

我們的processing畢竟是一個執行在PC端的東東,而且是java的地基,那麼,實現多執行緒應該是不在話下的,但在processing的reference中一個thread的關鍵詞都找不到,一度使我沮喪,但經過摸索最後我發現了 registerMethod函式,經過這個函式,我們可以在setup中註冊一個名稱為post的方法與draw函式並行的函式。
我們來看看它的具體應用:

int x=0;
void setup()
{
  registerMethod("post", this); 
}

void draw()
{
   println("####here is draw function  running :"+x);   
}


void post()
{
  ++x;
  println("*---------post1 running----------");
}

執行結果如下:
在這裡插入圖片描述

這充分說明,draw和post是並行執行的!我們瞭解我processing的執行緒呼叫了,後面的示波器的適時資料獲取和顯示就能夠很好的實現了。