thread.var使用注意事项

光庆 2月前 372

// 正确用法

var abcObject = thread.var("abc");
var abcTable = abcObject.get();
abcObject.release(); //在所有线程都不再使用该名称的共享变量时,再释放。

//在线程里面的正确用法

var abcObject = thread.var("abc","123");
thread.invokeAndWait(
    function(abcObject){
        var abc = abcObject.get();
        abcObject.set("456");
        //abcObject.release(); //不要释放该对象,否则任何线程再次访问都将变为null
    },abcObject //给线程传递共享变量对象即可
)
abcObject.release();

//在线程里面的错误用法

var abcObject = thread.var("abc","123");
thread.invokeAndWait(
    function(){
        var abcObject = thread.var("abc"); //如果不能传递共享变量对象,则声明一个
        abcObject.set("456");
        abcObject.release(); //错误:但不要释放,否则任何线程再次访问都将变为null
    }
)
abcObject.release();


说明:

1、同名的共享变量,只会创建一次,其他的调用,都是“指向”同一个变量,所以并不会增加内存占用。

2、因为 thread.ver 一般情况下,不会声明太多不同的共享变量,所以少量变量对程序内存占用影响不大。

3、本例仅仅说明其正确使用方法。实际影响效果根据不同代码而定。

最新回复 (1)
  • tanzh 2月前
    0 2
    线程var学习学习
返回