嗨,大家好,我有以下幾點。多線程頭痛。 Java的。返回值
class a extends Thread
{
public synchronized BigInteger getUniqueID()
{
BigInteger aUniqueID = new BigInteger(getUniqueKeyFromDatabase);
return aUniqueID;
}
}
class b extends a
{
public run()
{
BigInteger uniquieID = getUniqueID();
// store UniqueID in another database table with other stuff
}
}
而我得到的是存儲在數據庫表中的重複唯一標識。我假設因爲在這個多線程環境中uniqieID正在改變。
我明顯會在某個地方出現可怕的可怕錯誤,我猜我不應該以這種方式返回價值。或者應該根據getUniqueID方法的響應將uniqueID定義爲新的BigInteger。
任何幫助將不勝感激,因爲我脆弱的心靈已經被扭曲了!
乾杯
艾倫
當你說「我得到的是錯誤的唯一ID存儲在某處」,你的意思是你重複?哪種方式是「錯誤的」? – stivlo 2011-05-26 09:24:58
是的,抱歉,只是稍微修改了說明。我將unqiue ID存儲在數據庫表中,在這裏我有一些(但不是全部)重複出現。 – 2011-05-26 09:26:10
什麼定義了UniqueKeyFromDatabase? – 2011-05-26 09:28:52