我知道,LinkedList的是不是線程安全的,並在工作中我一直在要求寫一個裸露的骨頭線程安全的鏈表。ThreadSafe的鏈表實現
因爲我不會去通過我不能簡單地換一個LinkedList,但需要編寫一個LinkedList的實現各種併發症的
我猜我需要這一點,但我怎麼能真正實現一個枚舉(對於linedlist )以線程安全的方式?
public class LinkedlistNode
{
private LinkedlistNode next;
private T item;
/// <summary>
/// Constructor for a new LinklistNode
/// </summary>
/// <param name="node">The node item to create</param>
public LinkedlistNode(T node)
{
next = null;
item = node;
}
/// <summary>
/// Shows the next item in the collection (or shows null for the the last item)
/// </summary>
public LinkedlistNode Next
{
get { return next; }
set { next = value; }
}
/// <summary>
/// The contents of the list
/// </summary>
public T Item
{
get { return item; }
set { item = value; }
}
}
看起來你已經有了一個單向鏈表那裏。如果通過取消屬性上的setter來使其不可變,那麼鏈表將自然是線程安全的。您可以在[FSharp.Core.dll](http://msdn.microsoft.com/zh-cn/library/ee370372.aspx)中找到已經爲您實施的一個。 – 2011-05-06 21:07:33
我需要能夠添加和刪除,如果另一個線程試圖從列表中添加或刪除項目:) – 2011-05-06 21:09:50
應該發生什麼項目,而線程列舉了呢? – 2011-05-06 21:13:26