关于一次从多个线程访问局部变量的几个问题:
我有多个线程写入和读取变量的值,我是否应该同步访问它?
该变量每隔几秒钟就会从 Thread1 更新一次,并且每隔几秒钟就会从 Thread2 读取并更新到数据库中。
如果我没有任何逻辑并且没有任何并发问题,会出现哪些问题?
我应该为此使用 volatile 吗?
编辑:
我想强调我没有任何并发问题。这是我的具体方案:
一个。我的变量的名称是pingLatency
,它测量 ping 延迟
湾。Thread1 每 10 秒向 8.8.8.8 发送一个 ping,并将延迟写入pingLatency
C。Thread2pingLatency
每 10 秒更新一个相关字段的值。
d。Thread2 每次更新相同的数据库行。
现在,我正在使用这个数据库字段来监控网络连接。我的问题是 - 是否存在变量未更新或由于线程安全问题而引发异常的情况?我想避免使用lock
,因为它看起来有点矫枉过正。
你怎么看?