我正在练习 Semaphore 类,我创建了两个线程,其中一个将数据写入“Shared”类中的 HashMap,另一个从 Shared 类中读取数据。
所以我的问题是,当我读取数据时,它只显示先前在 Shared 类中添加的数据,而不是更新的数据。我不知道我在哪里失踪了。
如果是这样,我应该从“Writedata”类中读取线程如何返回 HashMap。
class Shared {
Map<String, Integer> hashmap = new HashMap<String, Integer>();
{
hashmap.put("kishore", 797979);
hashmap.put("nanesg", 8768787);
hashmap.put("mahesh", 842803);
hashmap.put("srikar", 7979980);
}
public void puthash(String name, Integer in, Map<String, Integer> hashmap) {
hashmap.put(name, in);
}
public Map<String, Integer> gethash() {
return this.hashmap;
}
}
这是它的输出:
writeThread trying to get permit
read Thread trying to acquiring the permit
write Thread acquires the permit
write Thread relesing the permit
read Thread acquires the permit
reading data in hashmap, Here is the data:
nanesg : 8768787
mahesh : 842803
kishore : 797979
srikar : 7979980
read Thread relesing the permit
为什么 WriteData 线程(特别是函数)没有添加数据。该功能有什么问题?
相关分类