所以我想要一个存储一系列股票报价的arraylist.但我会跟踪每个的出价,要价和最后价格.
当然,任何时候,特定股票的买入价或最后价格都可能发生变化.
我有一个更新价格的线程和一个读取它们的线程.
我想确保在阅读时没有其他线程正在更新价格.所以我看了同步集合.但这似乎只是阻止阅读,而另一个线程正在添加或删除arraylist的条目.
所以现在我进入包装方法:
public class Qte_List {
private final ArrayList<Qte> the_list;
public void UpdateBid(String p_sym, double p_bid){
synchronized (the_list){
Qte q = Qte.FindBySym(the_list, p_sym);
q.bid=p_bid;}
}
public double ReadBid(String p_sym){
synchronized (the_list){
Qte q = Qte.FindBySym(the_list, p_sym);
return q.bid;}
}
Run Code Online (Sandbox Code Playgroud)
所以我想用这个来完成的只有一个线程可以做任何事情 - 一次读取或更新the_list的内容.我接近这个吗?
谢谢.