gpt4 book ai didi

Haskell 并发性和持久性

转载 作者:行者123 更新时间:2023-12-02 21:14:47 25 4
gpt4 key购买 nike

我一直在阅读 Beautiful Concurrency关于 Haskell 和 STM 的文章.

给出的示例是银行账户转账。

这是一次简单的银行转账 - 它位于堆内存中的两个数字之间。

这立即在我脑海中提出的问题是:

  1. 传输如何原子地到达磁盘。直到一笔银行交易记录在持久- ACID - 顺便说一句,这在我的书中没有发生过。人们如何使用像 Haskell 这样的语言(它不允许您在 STM 内执行任何 IO)实际上对不仅在 volatile 内存中的数据进行原子更改?

  2. 如何将其分发到多台机器上;如何拥有分布式事务和横向扩展应用程序(STM 内部没有 IO)?

最佳答案

STM 用于线程同步和通信,而不用于数据的持久存储。换句话说,STM 的设计目的是让线程在它们之间共享数据,而不会出现死锁或竞争条件。或者让线程相互发送信号。或者基本上是为了协调线程事件。

如果您希望将数据持久存储在磁盘上,请使用数据库。 MySQL、PostgreSQL、Oracle 等。有一百万种可供选择。这不是 STM 旨在解决的问题。

对于分布式处理...我们仍在努力。我对这些事情的关注不够密切,无法评论这与现实有多接近。

关于Haskell 并发性和持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804819/

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