假设变量是 8 位、16 位或 32 位,并且只能这样访问(如果不是,答案总是“否”):取决于您对“访问”的定义。如果您有一个线程写入它而另一个线程读取它,则没有问题。但是,如果您有一个需要多次访问的操作,您仍然需要线程安全。例如,如果变量用作信号量:线程 1 将变量设置为 1,线程 2 读取变量,如果为 1,则将其清除为 0 并执行某些操作。在那种情况下,读取和写入是两个不同的操作,线程 1 可能会“潜入”另一个“设置为 1”,这会丢失。
假设变量是 8 位、16 位或 32 位,并且只能这样访问(如果不是,答案总是“否”):取决于您对“访问”的定义。如果您有一个线程写入它而另一个线程读取它,则没有问题。但是,如果您有一个需要多次访问的操作,您仍然需要线程安全。例如,如果变量用作信号量:线程 1 将变量设置为 1,线程 2 读取变量,如果为 1,则将其清除为 0 并执行某些操作。在那种情况下,读取和写入是两个不同的操作,线程 1 可能会“潜入”另一个“设置为 1”,这会丢失。
举报