【发布时间】:2016-12-21 10:46:16
【问题描述】:
我有一个包含 65000 个字符串的字符串类型列表。我需要遍历所有这些字符串并执行一些任务。在 for 循环上运行以迭代 65000 次需要更多时间。所以我想启动 4 到 5 个线程,它们可以划分这个列表数据并单独执行 10000 到 15000 个数据。我已经了解使用 Thread 类启动和中止线程。但是我不清楚多线程和线程管理以及实现锁定机制,以便多个线程不能处理相同的数据并且执行顺序不会改变。
我是线程概念的新手。请帮助。任何代码示例将不胜感激。
谢谢。
【问题讨论】:
-
不要使用
Thread!请改用Task,让框架处理线程池上的任务处理方式。此外,如果您只是从列表中读取,则不需要锁定。 -
为什么不使用 .NET 的
Parallel.For或 PLINQ?为什么要自己写? -
是的
Parallel.For更适合这种情况。 -
@EpicSam:嗨,如果使用队列而不是列表,是否需要锁定?
标签: c# multithreading threadpool