SV学习笔记:static task/function ,automatic task/function
static task/function.(静态的任务和函数,在使用的时候默认为task和function不加static):指的是在调用该task和function的时候,在调用的某种机制会在相应的内存空间开辟一块静态的存储空间,因为该存储空间直到整个程序完成之前都会一直存在,故称为静态的空间,在整个进程结束以后消亡。例如:在调用static task的时候所有的操作对数据进行读写,任务的执行都在这块空间之上,所以如果有另一进程再次调用该空间的时候就有可能对之前进程写进task中的数据造成破坏(常见在竞争冒险问题中)。所以一般来说静态的任务和函数都是哟过来进行计数的,不用来多进程通信.但是在用于统计的时候也应该注意计数的大小是否会超过调用的内存空间的大小。一般来说在module或者initia中的task和function不加特别声明都是静态的,若想把静态的任务和函数变成动态的必须加上automatic
automatic task/fuction (动态任务和函数,在使用的时候必须加上automatic):指的是只要调用automatic task/function,就会新开辟一个内存空间,在该空间内进行读写。当读写万层以后就会消亡,重新调用就会重新开辟新的空间,调用完成消亡空间释放,而不是随着整个程序的完成以后才会消亡,所以他是动态的.它极好的避免了静态任务和函数中的竞争冒险问题.一般来说class中的任务和函数都是动态的.

浙公网安备 33010602011771号