1.首先扔掉所有全局变量,采用消息、事件等线程通信方式。
2. 如果有全局变量、共享内存,加锁。
3.如果不加锁。读写加关键词。
多线程对同一全局变量的读写可能会导致问题。
写操作根据硬件设计不同,可能有三种方式。
(1)写穿过。即直接写内存。
(2)写cache,等cache攒够了之后统一写内存。
(3)写cache同时写内存。
从性能上讲,方式(2)的效率会高很多。这就可能导致,写操作只改变而cache,而读操作读的内存。即可能写操作将0改成了1,但读操作依然读的0.
1.首先扔掉所有全局变量,采用消息、事件等线程通信方式。
2. 如果有全局变量、共享内存,加锁。
3.如果不加锁。读写加关键词。
多线程对同一全局变量的读写可能会导致问题。
写操作根据硬件设计不同,可能有三种方式。
(1)写穿过。即直接写内存。
(2)写cache,等cache攒够了之后统一写内存。
(3)写cache同时写内存。
从性能上讲,方式(2)的效率会高很多。这就可能导致,写操作只改变而cache,而读操作读的内存。即可能写操作将0改成了1,但读操作依然读的0.