gpt4 book ai didi

linux - 多线程 Linux 与 Windows

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:44 25 4
gpt4 key购买 nike

我正在将一个 Linux 应用程序移植到 Windows。我观察到需要在多线程部分进行许多更改。

Windows 中“pthread_t”(在 Linux 中)的等效结构是什么?

在 Windows 中,“pthread_attr_t”(在 Linux 中)的结构等效于什么?

移植时能否指导我一些技巧。

谢谢...

最佳答案

Windows 上 pthread_t 的等价物(通常是这种情况)是一个 HANDLE - 这就是 CreateThread返回。

pthread_attr_t 没有直接等价物。相反,标志的属性(例如堆栈大小、线程最初是否挂起以及其他内容)通过参数传递给 CreateThread

在我目前看到的案例中,围绕 pthreads 编写一个小包装器以便您可以为 Windows 提供替代实现非常简单。最让我恼火的是,在 Windows 上,Mutex 与 Linux 上的不一样:在 Windows 上,它是一个可以从多个进程访问的句柄。 pthread 库称为 mutex 的东西在 Windows 上称为“临界区”。

话虽这么说,如果您发现自己发现的包装器代码不止几十行,您可能想看看 c++11 thread library或在 thread support in Boost以避免重新发明轮子(并且可能是错误的)。

关于linux - 多线程 Linux 与 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18096608/

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