问题标签 [threads.h]

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 投票
5 回答
7953 浏览

c - 铿锵 c11 threads.h 未找到

我正在尝试在 xcode 中设置一个 c11 线程示例...但它似乎没有threads.h 标头,尽管它并不抱怨此处描述的宏:
http://www.open-std。 org/jtc1/sc22/wg14/www/docs/n1570.pdf

__STDC_NO_THREADS__整数常量1,意在表示实现不支持<threads.h>头。

显示方言 显示错误

0 投票
1 回答
6732 浏览

c - C11 线程.h 库

我想做的是threads.h在 Windows 10 上使用 C11 标准。我已经用 MinGW 安装了 Code::Blocks。我已经设置了编译器设置-std=c11标志,但没有运气。我还安装了 Win64 版本的 MinGW,并将其设置为默认值,-std=c11也没有积极的结果。我已经下载了最新版本的tdm-gcc并且没有任何改变。

我得到的只是:fatal error: threads.h: No such file or directory

我知道有人刚刚安装了最新版本的 Code::Blocks 并且他拥有threads.h. 我也这样做了,但似乎它不起作用。我已经阅读了这里的所有问题,我几乎只阅读问题中的第一句话就知道答案和评论。

我发现Pelles C windows 开发套件有 C11 标准可供使用。可选库threads.h已经集成。我已经安装了它,但是我有很多 GNU 静态库 (.a) 应该编译成 Windows 静态或动态库,所以会非常耗时。

任何帮助或任何新信息将不胜感激。

0 投票
1 回答
100 浏览

c - 与子线程共享存储在主线程堆栈中的互斥锁

在尝试使用 c11 threads.h 和互斥锁来同步网络线程和主线程时,我开始使用以下过程:

- 在主函数中定义一个互斥锁

- 初始化它

-将此互斥体的指针分配给作为起始参数传递到我的网络线程中的堆分配结构的成员

-在主线程/网络线程中锁定互斥锁,以确保堆中的某些数据不会同时被访问。

但是我不确定这是否是正确的方法,或者我是否很幸运我的编译器没有破坏我的代码。

我认为互斥锁驻留在主线程的堆栈中,因此子线程不应该能够访问它,因为它应该只能访问堆分配的东西或全局变量。

但尽管如此,同步似乎工作。

mtx_init 内部是否涉及一些将互斥锁放在堆上的魔术?或者这只是依赖于实现?我应该将主线程中的互斥锁分配到保存端/使其成为全局变量吗?

0 投票
1 回答
156 浏览

c - 如何从 POSIX 升级到,C11标准?

将我的 C 程序从 pthreads、POSIX、<pthread.h> 切换到 C11 标准 <threads.h>。

我在 2019 年的 MAC 上。下面是我的错误和我的 gcc -version 输出。

如何升级以使用 <threads.h>?

7年前的问题说它不受支持,现在仍然如此吗?为什么不支持“标准”?

错误信息:

ruby.c:5:10:致命错误:找不到“threads.h”文件#include <threads.h>

配置: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang 版本11.0.0 (clang-1100.0.33.17) 目标:x86_64-apple-darwin19.6.0 线程模型:posix InstalledDir:/Library/Developer/CommandLineTools/usr/bin