问题标签 [pthreads-win32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5516 浏览

windows - pthreads-win32 在各种 Windows 编译器上的可移植性

我正在使用 pthreads-win32 来允许对 Windows 进行线程支持。

我有一个使用 pthreads 的跨平台项目,我想让它在具有各种编译器和不同操作系统版本的 Windows 上工作。

至少,根据文档 pthreads-win32 应该与 MSVC 甚至提供的 MSVC 构建一起使用。

但我不知道该库是否使用最新的 MSVC 编译器(如 MSVC-2008)进行了测试,以及它是否在 64 位窗口下受支持。

根据您自己的经验,您是否知道这个库有任何问题?

  • MSVC8、MSVC9、MSVC10 有任何问题吗?
  • Windows x86_64 有任何问题吗?
  • Windows Vista/Windows 7 有任何问题吗?

笔记:

  • 甚至不要尝试推荐使用 Boost.Thread,我不感兴趣。而且我熟悉 Boost.Thread 库
  • 我对使用 Win32 API(缺少 RW 锁、条件变量等)重新发明轮子不感兴趣。
  • 我确实设法用 MSVC-2008 和 MinGW GCC-4.3 编译了一个项目,然后使用当前预编译的 pthreads DLL 轻松地对其运行单元测试。

我只需要知道 pthreads-win32 的限制。

0 投票
5 回答
851 浏览

winapi - Pthread win32 库,不支持 PTHREAD_PROCESS_SHARED

我正在使用 pthread win32 库来实现 mqueue。但是当它遇到以下代码时,它会抛出#40错误应该是ENOSYS,意味着系统不支持。

出错后我 40 岁。任何机构对此有想法?还是您有其他替代解决方案,例如使用哪种WIN32线程函数来代替它。

注意:如果有人在win32中成功实现了mqueue?谢谢

0 投票
4 回答
648 浏览

c++ - pthread-win32 扩展 sem_post_multiple

我目前正在围绕 pthreads 构建一个精简的 C++ 包装器以供内部使用。Windows 和 QNX 都是目标,幸运的是 pthreads-win32 端口似乎工作得很好,而 QNX 符合 POSIX 用于我们的实际目的。

现在,在实现信号量时,我点击了函数

这显然只在 pthreads-win32 上可用,但在 QNX 中没有。顾名思义,该函数应该通过作为第二个参数给出的计数来增加信号量。据我所知,该函数既不是 POSIX 1b 也不是 POSIX 1c 的一部分。

尽管目前对上述功能没有要求,但我仍然想知道为什么 pthreads-win32 提供该功能以及它是否有用。我可以尝试使用类似于以下内容为 QNX 模仿它:

我要的是关于如何进行的建议/建议。如果共识建议为 QNX 实现该功能,我也会感谢您对建议的代码剪断是否是一个可行的解决方案的评论。

提前致谢。

PS:为了清楚起见,我故意省略了我喜欢的 C++ 类。对于所有建议加强救援的人:由于管理原因,这不是我当前项目的选择。

0 投票
1 回答
2545 浏览

windows - pthread win32版本?(猫鼬)

请告诉我 pthread 版本之间有什么区别:VC2、VCE2 和 VSE2?如何选择我必须在 Visual C++ Express 2010 for Mongoose 网络服务器库中使用哪些?

谢谢!!!

0 投票
4 回答
9592 浏览

c - 如何在 Windows 上运行 Pthreads

我以前用mac写过一些C程序,但现在不行了。
我必须使用旧的 Windows 笔记本电脑一段时间。

我安装了代码块并使用 Pthreads 测试了一个简单的程序。不幸的是,它没有用。

它一直说未定义的引用_imp__pthread_create

我该如何解决?

0 投票
1 回答
2876 浏览

php - PHP 的 pthreads 不在 Apache 中执行并行线程

我正在使用 PHP 的pthreads扩展。当我在 Windows 上执行 PHP 脚本时cmd,我得到了并行线程,但是当我从 Apache 调用相同的脚本时,我得到了不同的结果,在我看来,这就像单线程执行。

我应该为 Apache 进行任何配置以获取类似cmd(并行)的响应吗?

示例代码给出如下响应cmd

在网络浏览器中:

更新:在不同的浏览器上我得到不同的结果;这个问题可能与缓冲区有关,我将对此进行调查。

0 投票
1 回答
817 浏览

c++ - pthread_cond_timedwait 返回错误 138

我在谷歌上找不到这方面的任何信息,所以我在这里发帖希望有人能提供帮助......

我的问题是 Windows pthread 函数pthread_cond_timedwait()。当指定的时间过去时,函数应该返回值 ETIMEDOUT。相反,在我的代码中,它的条件变量没有发出信号,它返回值 138 并且比预期的超时时间早得多,有时是立即执行。

所以我的问题是:这个错误 138 是什么?为什么超时没有完全过去?我用于线程的代码是:

我的绝对超时计算有问题吗?

只有这个线程和调用线程存在。调用者在创建后立即加入创建者,并正确等待它完成。目前,条件变量cond_从未发出信号,但如果我尝试这样做,则pthread_cond_timedwait()返回值 0 如预期的那样。即使此处未显示,两者cond_mutex_都已正确初始化(如果我不这样做,我会收到 EINVAL 错误)。

同样遵循 pthread 代码,我找不到此错误。我只能找到一些return errno可以产生它的东西,但我不知道138的含义。

如果有帮助,我正在使用带有 pthreads win32 v2.9.1 的 Visual Studio 2003。

谢谢,

RG

0 投票
2 回答
645 浏览

c - pthread_create 空间不足

我在 Windows 上将 Pthreads 与 MinGW 一起使用。对 pthread_create 的调用会返回一个错误,该错误会转换为“空间不足”。它指的是什么样的空间?是线程堆栈空间吗?

0 投票
2 回答
916 浏览

c++ - 为什么主线程比 pthread-win32 中的工作线程慢?

主线程和工作线程应该运行同样快,但结果是:

主线程慢得多,我不知道为什么....


问题解决了。这是编译器的问题,GCC(MinGW) 在 Windows 上的行为很奇怪。我在 Visual Studio 2012 中编译了代码,没有速度差异。

0 投票
0 回答
1104 浏览

c++ - win32 上的 pthread_cond_timedwait 问题

我将 pthread 用于 Windows 和 Linux 环境中使用的程序。对于 Windows,我将 pthread 用于 Win 32 版本 2.9.1(最新)。

我需要使用 pthread_cond_timedwait 等待以微秒为单位的时间。在 linux 上一切正常,但在 windows 上,尽管我努力,但我不能低于秒的分辨率。

这是我使用 pthread 函数的方式:

这是我使用的 gettimeofday() 的实现:

我使用了这个简单的测试程序:

输出:

获胜输出:

我哪里错了?