gpt4 book ai didi

haskell - 在操作系统线程周围改组 Haskell 线程时,ThreadID 是否一致?

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

在 Haskell 中,forkIO 创建了一个未绑定(bind)(Haskell)线程,而 forkOS 创建了一个绑定(bind)( native )线程。上一个问题的答案here我曾提到 Haskell 线程不能保证保持在同一个操作系统线程上,Control.Concurrent 的文档似乎支持这一点。模块。我的问题是,如果一个正在运行的 Haskell 线程被交换到另一个操作系统线程,它的 ThreadID 会保持不变吗?

最佳答案

是的。

A ThreadId is an abstract type representing a handle to a thread.



这就是您向特定线程发送异步信号的方式:使用 ThreadId .涉及哪个操作系统线程并不重要,而且目标线程很可能根本没有绑定(bind)到任何操作系统线程(例如,它正在休眠)。

“操作系统线程”的存在在某种程度上是一个实现细节,尽管如果您将 FFI 与某些库一起使用,则需要管理它们。否则,您几乎可以忽略代码中的操作系统线程。

关于haskell - 在操作系统线程周围改组 Haskell 线程时,ThreadID 是否一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11515772/

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