【初心者】Java質問・相談スレッド132【専用】
■ このスレッドは過去ログ倉庫に格納されています
0068デフォルトの名無しさん
2009/09/15(火) 18:35:24private static final Map<String,String> tmpMap = new java.util.concurrent.ConcurrentHashMap<String,String>();
public void run() {
String uniqueKey = "hogehoge";
while(true) {
if(!tmpMap.containsKey(uniqueKey)) {
String data = getData();
tmpMap.put(data,uniqueKey);
String tmpLocalKey = tmpMap.get(data);
if(uniqueKey.equals(tmpLocalKey ) {
somethingDoTask();
}
}
}
}
簡単に言うと上記のようなソースがあり4スレッドくらいを並列で動かしてます
マップはロックのような形で使用し、あるデータ名をキーにし4つのスレッドの内
1つだけが処理を行うような仕組みです。
ですが、実際は重複して実行しているようです。
このマップを使う事が間違いでしょうか?
■ このスレッドは過去ログ倉庫に格納されています