首页 > 文档 > thread()多线程
2017
06-30

thread()多线程

thread()

例子:

 

String time = "";



void setup() {

  size(100, 100);

}



void draw() {

  background(0);

  // 没30帧要求一下数据

  if (frameCount % 30 == 0) {

    thread("requestData");

  }

  text(time, 10, 50);

}



//这发生在一个单独的线程,可以采取只要它想要的

void requestData() {

  JSONObject json = loadJSONObject("http://time.jsontest.com/");

  time = json.getString("time");

}                     

 

描述:处理草图按照一个特定的步骤顺序:首先setup(),然后在循环中重复执行draw()。线程也是一个开始,中间和结束的一系列步骤。处理草图是单线程,通常被称为“动画”线程。然而,其他线程的序列可以独立于主动画循环运行。实际上,您可以一次启动任意数量的线程,并且它们都将同时运行。

 

你不能从一个由thread()函数调用的函数画画。因为它独立运行,代码将不会与动画线程同步,导致奇怪或至少不一致的结果。使用thread()加载文件或执行其他需要时间的任务。任务完成后,设置一个指示任务完成的变量,并从draw()方法内检查。

 

处理通常使用线程,例如使用库函数,如captureEvent()和movieEvent()。这些功能由不同的线程在后台运行触发,并且每当有事情要报告时,它们会提醒处理。当您需要执行太长时间的任务并减慢主要动画的帧速率(例如从网络抓取数据)时,这很有用。如果一个单独的线程卡住或出现错误,整个程序将不会停止,因为错误只会停止该单独的线程。

 

编写自己的线程可能是一个复杂的工作,涉及扩展Java Thread类。然而,thread()方法是在Processing中实现一个简单线程的一种快速而肮脏的方式。通过传入与草图中其他地方声明的函数的名称相匹配的String,Processing将在单独的线程中执行该函数。

 

语法:thread(name)

 

参数:name 字符串:一个可被执行的方法

 

返回 空

 

相关:setup()

draw()

loop()

noLoop()

 

 



最后编辑:
作者:卡萨布兰卡
这个作者貌似有点懒,什么都没有留下。

thread()多线程》有 1 条评论

留下一个回复

你的email不会被公开。