线程局部类变量
被跟踪的线程在首次发出将值指定给变量的操作块时,对线程局部变量进行实例化。 创建后,只要 Vue 脚本处于活动状态并且跟踪的线程不退出,就会存在线程局部变量。 线程局部变量的值特定于线程,并且在同一程序的任何子句的执行过程中都保留。 换言之,此类的变量在 Vue 脚本中随处可见。 但是,发出 Vue 脚本的每个线程都将获取其自己的这些变量副本,并且每个此类副本中的变量只能由实例化这些变量的线程在脚本中的任何位置进行访问和修改。
使用 thread: 前缀定义线程局部变量。 例如,thread:count
表示线程局部变量。 您也可以使用 __thread 声明语句来声明线程局部变量,在这种情况下,thread: 前缀可省略,但以下情况例外。
即使在实例化线程局部变量之前,您也可以在 Vue 子句的谓词部分中使用该变量。 具有未实例化的线程局部变量的谓词总是求值为 FALSE。 在谓词部分中使用时,总是必须包括 thread: 前缀以将其标识为线程局部变量。
以下脚本是 __thread 声明语句的示例:
__thread int i; /* Explicit declaration */
thread:j = 0; /* Implicit declaration */
注: 虽然您可以在 @@BEGIN 和 @@END 探测器中声明线程本地人,但在这些特殊探测器中对他们的任何其他引用都可能产生未定义的行为。 声明语句本身不会造成实例化线程局部变量。