如何使每个例程都成为每个例程的全局变量?



在我计划运行的每个例程中都有很多函数,但在我将其重构为多个线程之前,它使用一个全局变量来发送消息。在我重新构造它之后,例程写出了同样的变量,这引起了恐慌。

那么,我该如何解决这个问题呢?是否有一种方法,使每个例程一个唯一的全局变量?

不要使用全局(包级)变量。如果必须,请使用适当的同步。

但正如谚语所说:

不通过共享内存进行通信;相反,通过通信共享内存。

使用通道来通信结果,这在设计上对于并发使用是安全的。

如果存在所有程序都应该具有的状态,将描述状态的变量分组到一个结构体中,并将该结构体的值传递给每个程序,或者让它们自己创建。

参见:如何使变量线程安全

最新更新