gpt4 book ai didi

multithreading - putStrLn 是线程安全的吗?

转载 作者:行者123 更新时间:2023-12-03 09:29:17 25 4
gpt4 key购买 nike

我知道如果我有多个线程调用 putStrLn没有任何类型的并发控制,线程的输出可能是交错的。

我的问题是 putStrLn这个交错输出是线程安全的模数吗?

我假设 putStrLn是一个缓冲的写操作,所以我真的想问如果有两个线程调用 putStrLn 是否会发生输出缓冲区的任何损坏。同时。

总的来说,关于 Haskell(实际上是 GHC)的其他“标准 I/O”函数的线程安全可以说什么?特别是,对于任何缓冲读取操作,同一个字符是否有可能返回到同时进行相同读取调用的两个不同线程?

最佳答案

是的,就您所问的而言,它是线程安全的。一个 HandleMVar 保护这不会让缓冲区损坏。但是,正如您所指出的,交错是另一回事。

关于multithreading - putStrLn 是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549706/

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