是一个德尔福全局过程线程安全



如果两个或多个线程调用标准的Delphi/Pascal过程(不是对象的方法),这个线程安全吗? 过程中没有实例数据,只有局部变量。
我的猜测是,一个线程使用的本地存储可能被另一个线程损坏。

本地存储在堆栈上维护,每个线程都是唯一的。 如果例程没有操作全局数据,则它是安全的。

如果只有本地变量,你应该没问题。 如果我是你,我会测试这个理论:在 proc 中声明一个局部变量并在循环中将其递增一百万次,然后从两个线程调用 proc 并在百万增量后检查变量的值。

最新更新