线程函数
说明
- 线程模块函数主要是跟线程信息相关联
- 线程模块的对象前缀是thread,例如 thread.execFuncSync()这样调用
setTimeout 延迟执行
- 设定延迟多少毫秒后执行函数,在子线程中执行
- @param func 要执行的函数
- @param timeout 延迟时间,单位是毫秒
- 线程对象 该对象可以进行取消
function main() { var t = setTimeout(function () { logd("我是一秒后执行的代码"); }, 1000); //模拟脚本运行中 while (true) { sleep(1000) }}
main();cancelTimeout 取消延迟执行
- 取消延迟执行
- @param t 要取消的函数
function main() { var t = setTimeout(function () { logd("我是一秒后执行的代码"); }, 1000); //取消就不会执行了 cancelTimeout(t);}
main();setInterval 周期执行
- 设置多少周期进行执行一次,在子线程中执行
- @param func 函数
- @param interval 周期时间,单位是毫秒
- @return 线程对象 该对象可以进行取消
function main() { var t = setInterval(function () { logd("我是每隔一秒执行的代码"); }, 1000); //模拟脚本运行中 while (true) { sleep(1000) }}
main();cancelInterval 取消周期执行
- 取消周期执行的函数
- @param t 要取消的函数
function main() { var t = setInterval(function () { logd("我是每隔一秒执行的代码"); }, 1000); cancelInterval(t);}
main();execSync 同步执行
- 执行某个函数并且等待true返回,如果函数中返回的是true,该方法将立刻执行完毕
- @param condition 条件函数
- @param timeout 超时时间,单位是毫秒
- @return 布尔型 返回一个布尔型值
function main() { execSync(function () { logd("我是同步执行的代码"); }, 1000);}
main();thread.stopAll 停止
- 取消所有正在运行的线程
function main() { execSync(function () { logd("我是同步执行的代码"); }, 1000); thread.stopAll();}
main();thread.execAsync 异步执行
- 异步执行线程,这里会将Runnable放到线程池中进行管理
- @param runnable Runnable对象
function main() { var tid = thread.execAsync(function () { while (true) { logd("我是异步执行的代码"); sleep(1000); if (thread.isCancelled(tid)) { break; } } }); logd("tid " + tid); //5s后取消线程 sleep(5000); logd("取消线程 " + tid); thread.cancelThread(tid); sleep(5000); logd("结束 ");}
main();thread.execSync 同步执行
- 执行某个函数并且等待true返回,如果函数中返回的是true,该方法将立刻执行完毕
- @param condition 条件函数
- @param timeout 超时时间,单位是毫秒
- @return 布尔型 返回一个布尔型值
function main() { thread.execSync(function () { logd("我是同步执行的代码"); }, 1000);}
main();thread.cancelThread 取消线程
- 取消线程的执行
- @param t 线程对象ID
- @return boolean
function main() { var tid = thread.execAsync(function () { while (true) { logd("我是异步执行的代码"); sleep(1000); if (thread.isCancelled(tid)) { break; } } }); logd("tid " + tid); //5s后取消线程 sleep(5000); logd("取消线程 " + tid); thread.cancelThread(tid); sleep(5000); logd("结束 ");}
main();thread.isCancelled 取消判断
- 取消线程的执行
- @param t 线程对象ID
- @return boolean true代表已经取消了,false表示未取消
function main() { var tid = thread.execAsync(function () { while (true) { logd("我是异步执行的代码"); sleep(1000); if (thread.isCancelled(tid)) { break; } } }); logd("tid " + tid); //5s后取消线程 sleep(5000); logd("取消线程 " + tid); thread.cancelThread(tid); sleep(5000); logd("结束 ");}
main();