gpt4 book ai didi

multithreading - 如何避免可变状态(多线程时)

转载 作者:行者123 更新时间:2023-12-04 04:32:18 25 4
gpt4 key购买 nike

多线程很难。您唯一能做的就是非常仔细地编程并遵循好的建议。我从这个论坛的答案中得到的一个很好的建议是避免可变状态。我知道这甚至在 Erlang 语言中也是如此。但是,如果没有严重的性能损失和大量的缓存,我看不到如何做到这一点。

例如。你有一个很大的对象列表,每个对象都包含很多属性;换句话说:大型数据结构。假设你有一堆线程,它们都需要访问和修改列表。 如何在没有共享内存的情况下做到这一点,而不必在每个线程中缓存整个数据结构?

更新:在阅读了目前的 react 之后,我想更加强调性能。你不认为复制相同的数据会使程序比共享内存慢吗?

最佳答案

并非每个算法都可以成功地并行化。

如果您的程序没有表现出任何“并行结构”,那么您就注定要使用锁定和共享的可变结构。

如果您的算法表现出结构,那么您可以用一些模式或形式来表达您的计算(例如,宏数据流图),从而使不可变数据结构的选择变得微不足道。

所以:考虑算法的结构,而不是要使用的数据结构的属性。

关于multithreading - 如何避免可变状态(多线程时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1057272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com