2012-03-28 45 views
0

我有一個tuple形式的整數元組(1000)的大列表。我該如何去做一個List.Find和並行搜索列表?我正在搜索元組的兩個部分(即左側和右側元素)。搜索並行元組列表

任何幫助,將不勝感激。

+1

什麼語言? C#? Java的? – CAbbott 2012-03-28 14:09:44

+0

該語言是c# – jozamm 2012-03-29 03:33:56

回答

0

從邏輯上將您的列表拆分爲塊。給每個線程一個子列表進行搜索。如果使用數組,則更容易(從示例的角度來看),因爲您可以指定允許每個線程搜索的數組內的邊界。

例如,如果你有3個線程和長度爲n的數組。你可以讓第一個線程從0-n/3的元素中搜索;第二個線程從n/3到2 * n/3搜索;第三個線程從2 * n/3到n搜索。

警告:有3個搜索線程並不意味着搜索並行發生。您的機器上可能沒有3個核心/ CPU。

0

如果list是您的最愛和x的名稱是您正在搜索的價值,這應該這樣做(假設你使用.NET 4.0的工作):

var result = list.AsParallel().Where(tuple => tuple.Item1 == x).ToList();