有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在多个线程之间共享一个有效的不可变对象

下面hashmap中的更新值是否会反映在读卡器线程中(这些线程不会修改hashmap的状态)? 如果改用ConcurrentHashMap怎么办

public class SharedDataTest {

  private static class SomeWork implements Runnable {
    private Map<String, String> dataTable;

    public SomeWork(Map<String, String> dataTable) {
      this.dataTable = dataTable;
    }

    @Override
    public void run() {
      //do some stuff with dataTable
    }
  }

  public static void main(String[] args) {

    Map<String, String> dataTable = new HashMap<String, String>();
    dataTable.put("someKey","someValue");

    Runnable work1 = new SomeWork(dataTable);
    Runnable work2 = new SomeWork(dataTable);

    new Thread(work1).start();
    new Thread(work2).start();

  }
}

共 (0) 个答案