这个线程安全吗?

我正在为Android编写一个应用程序,并使用工作线程来处理某些信息。 通过我的代码阅读我现在不确定是否线程安全。

我写了一个我的代码的简化版本,我省略了用于与主线程进行通信的Handler对象,显然还有进程本身。

 public class myClass implements Runnable { private String myString; @Override public void run() { myString = "Some Value"; } } 

这是通过运行类似这样的东西来调用的。

 myClass class = new myClass(); Thread thread = new Thread(class); thread.start() 

那么,这个代码是不是线程安全的,因为我正在修改run()函数中的myString (在主线程中声明run()

Solutions Collecting From Web of "这个线程安全吗?"

本身就是线程安全的。 但是哪个线程正在读取 myString值? 如果在写入新线程之后从主线程读取它,那么这不是线程安全的。

不,如你所说,它是线程安全的。 如果你为myStringvariables创build了一个getter,你就有一个潜在的线程问题。 在这种情况下,您可能希望使getter / setter方法同步,或者更好地使variablesvolatile,这将确保variables的值对于每个线程都是相同的。