如果我有一个包含100项的列表,并且有4个线程每个线程修改25个项目,以便它们不会相互影响,那么这个列表是否是“线程安全”的,即是否能够按预期工作?
例如,您拥有一个包含1000只猫的数组,它们的“名称”属性为空,因为它们尚未被命名。您想浏览并对它们进行命名,但您希望它是多线程的。因此,您创建10个线程并告诉每个线程仅处理0-99、100-199等内容,并将它们启动。
例如,您拥有一个包含1000只猫的数组,它们的“名称”属性为空,因为它们尚未被命名。您想浏览并对它们进行命名,但您希望它是多线程的。因此,您创建10个线程并告诉每个线程仅处理0-99、100-199等内容,并将它们启动。
Parallel.For()
会为您进行分区。虽然没有单独线程的成本,但是仅用于切换1个属性仍然不会带来太多收益。 - H H