processing 內置了一個線程函數 thread();
按照博主的個人理解 ,基本說明如下:
類似於一般的processing程序,其遵循特定的一系列步驟:SETUP(),然後在一個循環中一遍又一遍地draw()。
線程也是一系列的開始、中間和結束的步驟。一個處理草圖是一個單線程,通常被稱爲“動畫”線程。然而,其他線程的序列可以獨立於主動畫循環運行。事實上,一次可以啓動任意數量的線程,它們將同時運行。
使用THEAD()加載文件或執行需要花費時間的其他任務。完成任務後,設置一個指示任務完成的變量,並從內部的DRAW()方法中檢查該變量。
但是最重要的就是要注意,線程類似於單片機中的中斷程序,不過它一直在跑,那麼在此你不能調用processing 的draw相關的處理函數 ,即繪畫,因爲它獨立運行,所以代碼不會與動畫線程同步,一旦調用,會導致奇怪或者崩潰的結果,這個問題博主不知道有什麼解決辦法。
附上一個測試程序:
import java.text.*;
String time = "";
void setup() {
//size(100, 100);
int i = 0;
thread("requestData");
}
void draw() {
{print("");}
}
// This happens as a separate thread and can take as long as it wants
void requestData() {
while(true)
{
GetCurrent1ms();
}
}
void requestData1() {
while(true)
{
print("thread1");
}
}
long GetCurrent1ms() //得到計時器
{
long between = 0;
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
try {
java.util.Date begin = dfs.parse("2018-07-26 00:00:00.000");
long end = System.currentTimeMillis();
between = (end - begin.getTime());
//between = end;
} catch (Exception ex) {
ex.printStackTrace();
}
print(between);
return (between);
}
需要使用就在主程序中查詢線程變量即可。