问题标签 [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.
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 的限制。
winapi - Pthread win32 库,不支持 PTHREAD_PROCESS_SHARED
我正在使用 pthread win32 库来实现 mqueue。但是当它遇到以下代码时,它会抛出#40错误应该是ENOSYS,意味着系统不支持。
出错后我 40 岁。任何机构对此有想法?还是您有其他替代解决方案,例如使用哪种WIN32线程函数来代替它。
注意:如果有人在win32中成功实现了mqueue?谢谢
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++ 类。对于所有建议加强救援的人:由于管理原因,这不是我当前项目的选择。
windows - pthread win32版本?(猫鼬)
请告诉我 pthread 版本之间有什么区别:VC2、VCE2 和 VSE2?如何选择我必须在 Visual C++ Express 2010 for Mongoose 网络服务器库中使用哪些?
谢谢!!!
c - 如何在 Windows 上运行 Pthreads
我以前用mac写过一些C程序,但现在不行了。
我必须使用旧的 Windows 笔记本电脑一段时间。
我安装了代码块并使用 Pthreads 测试了一个简单的程序。不幸的是,它没有用。
它一直说未定义的引用_imp__pthread_create
我该如何解决?
php - PHP 的 pthreads 不在 Apache 中执行并行线程
我正在使用 PHP 的pthreads扩展。当我在 Windows 上执行 PHP 脚本时cmd
,我得到了并行线程,但是当我从 Apache 调用相同的脚本时,我得到了不同的结果,在我看来,这就像单线程执行。
我应该为 Apache 进行任何配置以获取类似cmd
(并行)的响应吗?
示例代码给出如下响应cmd
:
在网络浏览器中:
更新:在不同的浏览器上我得到不同的结果;这个问题可能与缓冲区有关,我将对此进行调查。
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
c - pthread_create 空间不足
我在 Windows 上将 Pthreads 与 MinGW 一起使用。对 pthread_create 的调用会返回一个错误,该错误会转换为“空间不足”。它指的是什么样的空间?是线程堆栈空间吗?
c++ - 为什么主线程比 pthread-win32 中的工作线程慢?
主线程和工作线程应该运行同样快,但结果是:
主线程慢得多,我不知道为什么....
问题解决了。这是编译器的问题,GCC(MinGW) 在 Windows 上的行为很奇怪。我在 Visual Studio 2012 中编译了代码,没有速度差异。
c++ - win32 上的 pthread_cond_timedwait 问题
我将 pthread 用于 Windows 和 Linux 环境中使用的程序。对于 Windows,我将 pthread 用于 Win 32 版本 2.9.1(最新)。
我需要使用 pthread_cond_timedwait 等待以微秒为单位的时间。在 linux 上一切正常,但在 windows 上,尽管我努力,但我不能低于秒的分辨率。
这是我使用 pthread 函数的方式:
这是我使用的 gettimeofday() 的实现:
我使用了这个简单的测试程序:
输出:
获胜输出:
我哪里错了?