Processing, thread()
用法介绍。
用法
thread(name)
参数
name
(String)
要在单独线程中执行的函数的名称
返回
void
说明
处理草图遵循特定的步骤顺序:首先是setup()
,然后是draw()
,一遍又一遍地循环。线程也是一系列具有开始、中间和结束的步骤。处理草图是一个单线程,通常称为"Animation" 线程。但是,其他线程的序列可以独立于主动画循环运行。事实上,您可以一次启动任意数量的线程,它们都会同时运行。
您不能从 thread()
调用的函数绘制到屏幕。因为它是独立运行的,所以代码不会同步到动画线程,导致奇怪的或者至少不一致的结果。使用 thread()
加载文件或执行其他需要时间的任务。任务完成后,设置一个指示任务完成的变量,并从 draw()
方法内部检查。
处理经常使用线程,例如使用 captureEvent()
和 movieEvent()
等库函数。这些函数是由在后台运行的不同线程触发的,并且只要有要报告的内容,它们就会提醒处理。当您需要执行耗时过长且会减慢主动画帧速率的任务时,这很有用,例如从网络中抓取数据。如果一个单独的线程卡住或有错误,整个程序不会停止,因为错误只会停止那个单独的线程。
编写自己的线程可能是一项复杂的工作,涉及扩展 Java Thread 类。但是,thread()
方法是在处理中实现简单线程的一种快速而肮脏的方法。通过传入与草图中其他地方声明的函数名称相匹配的String
,Processing 将在单独的线程中执行该函数。
例子
String time = "";
void setup() {
size(100, 100);
}
void draw() {
background(0);
// Every 30 frames request new data
if (frameCount % 30 == 0) {
thread("requestData");
}
text(time, 10, 50);
}
// This happens as a separate thread and can take as long as it wants
void requestData() {
JSONObject json = loadJSONObject("http://time.jsontest.com/");
time = json.getString("time");
}
相关用法
- Processing this用法及代码示例
- Processing texture()用法及代码示例
- Processing textSize()用法及代码示例
- Processing textureMode()用法及代码示例
- Processing triangle()用法及代码示例
- Processing textLeading()用法及代码示例
- Processing trim()用法及代码示例
- Processing true用法及代码示例
- Processing text()用法及代码示例
- Processing textDescent()用法及代码示例
- Processing textFont()用法及代码示例
- Processing textAscent()用法及代码示例
- Processing textAlign()用法及代码示例
- Processing textMode()用法及代码示例
- Processing try用法及代码示例
- Processing textWidth()用法及代码示例
- Processing tint()用法及代码示例
- Processing tan()用法及代码示例
- Processing textureWrap()用法及代码示例
- Processing translate()用法及代码示例
- Processing FFT用法及代码示例
- Processing SawOsc.pan()用法及代码示例
- Processing FloatDict用法及代码示例
- Processing FFT.stop()用法及代码示例
- Processing join()用法及代码示例
注:本文由纯净天空筛选整理自processing.org大神的英文原创作品 thread()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。