我在两个例程里面看到对全局变量的使用方法有矛盾,还请专家帮忙解释下
在shmIPC例程里面,在c文件开头定义了一些全局变量,从下文的程序中可以看出,各个core都有自己的全局变量,全局变量的值都不一样。
但是在led_play例程里面,定义了next_core这个全局变量,却被用于多核之间同步,因此可见多核都可以访问的是同一个内存空间。
这里我有一点想不明白,对于多核程序,全局变量是多核共享的还是每个core都有对应的全局变量?
如果全局变量是共享的,shmIPC中之所以多核各自访问得到的全局变量值不同,只是因为各自cache里面的数据没有维护一致性,那么这样的使用方式岂不是很不安全?