我有一个多线程程序,我想知道使用"synchronized"的方式是正确的.
方式1:我有一个类对象(将被传递给多个线程),在其中称为MyClass:
public synchronized void set(String name) {
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
方式2:我有相同的类,但没有在其set方法中"同步":
public void set(String name) {
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
调用者将执行此操作:
MyClass myclass = new MyClass();
synchronized(myclass) {
myclass.set("myclass");
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我哪一个是实现多线程对象共享的正确方法?我很困惑这两个,我试过两个,他们似乎工作正常.