这个字怎么算螺栓螺纹安全?

时间:2016-04-01 06:04:43

标签: multithreading apache-storm

我是暴风雨的新人,我正在经历暴风雨的字数计数。这是跟踪计数的螺栓

public static class WordCount extends BaseBasicBolt {
    Map<String, Integer> counts = new HashMap<String, Integer>();

    @Override
    public void execute(Tuple tuple, BasicOutputCollector collector) {
      String word = tuple.getString(0);
      Integer count = counts.get(word);
      if (count == null)
        count = 0;
      count++;
      counts.put(word, count);
      collector.emit(new Values(word, count));
    }

    @Override
    public void declareOutputFields(OutputFieldsDeclarer declarer) {
      declarer.declare(new Fields("word", "count"));
    }
  }

根据我的理解,storm会为并行运行的bolt启动多个线程,那么如何在线程安全地使用HashMap?