相关疑难解决方法(0)

c11中的多线程支持

新的C11标准提供了对多线程的支持.
我的问题有点多元化,但绝对是可以回答的.
我看过C11 n1570选秀.
它说:

支持多个执行线程,包括改进的内存排序模型,原子对象和线程局部存储(<stdatomic.h><threads.h>)

什么是改进的内存排序模型?c99标准如何/有什么变化?

如果有人深入研究它们并尝试解释所涉及的语义,我将不胜感激.

据我了解,C11支持:

  • 线程创建和管理
  • 互斥
  • 条件变量
  • 线程特定存储&
  • 原子对象

我希望我什么都不错过?
从现在开始,标准库本身提供(将提供)多线程所需的所有功能,将来不需要POSIX和这样的库(用于多线程支持)?

最后,哪些编译器为上述功能提供支持?当支持这些时,是否有关于时间表的参考?
我记得在C++ 11中有一个编译器支持和功能的链接,也许是这样的?

c multithreading c11

68
推荐指数
2
解决办法
3万
查看次数

如何"多线程"C代码

我有一个用C编写的数字运算应用程序.它是一种主循环,对于每个值调用,增加"i"的值,执行一些计算的函数.我读到了多线程,我正在考虑在C中学习一点.我想知道像我这样的某些通用代码是否可以自动多线程以及如何.

谢谢

PD为了了解我的代码,让我们说它是这样的:

main(...)
for(i=0;i<=ntimes;i++)get_result(x[i],y[i],result[i]);
Run Code Online (Sandbox Code Playgroud)

...

void get_result(float x,float y,float result){
  result=sqrt(log (x) + log (y) + cos (exp (x + y));
(and some more similar mathematical operations)
}
Run Code Online (Sandbox Code Playgroud)

c multithreading

36
推荐指数
5
解决办法
6万
查看次数

GCC中的C11 <thread.h>?

我正在尝试使用编译一些C11代码thread.h,但我不能.我已经重新编译了GCC(现在运行4.6.2),我正在尝试编译gcc -std=c1x file.c -o file.我可以用g ++(使用thread库,即)来做到这一点,但我不能用C.还thread.h没有包含在GCC发行版中吗?

c gcc c11

28
推荐指数
3
解决办法
2万
查看次数

找不到C11 GCC threads.h?

以下代码

#include <threads.h>
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

fatal error: threads.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

使用最新的GCC和Clang -std = c11.

GCC和Clang不支持C11线程吗?或者是否有一个黑客(或安装的东西)来获得它?我只是使用Ubuntu 14.04和Ubuntu repo中的gcc和clang包.

c multithreading c11

23
推荐指数
2
解决办法
2万
查看次数

支持C11的编译器

我想知道是否有任何编译器支持相当数量的新C11标准.寻找像Generic Selection等功能.

有什么建议?

c compiler-construction c11

18
推荐指数
4
解决办法
1万
查看次数

clang c11 threads.h未找到

我试图在xcode中设置一个c11线程示例...但它似乎没有threads.h标头,虽然它没有抱怨这里描述的宏:
http://www.open-std.组织/ JTC1/SC22/WG14/WWW /文档/ n1570.pdf

__STDC_NO_THREADS__整数常量1,用于指示实现不支持<threads.h>标头.

显示方言 显示错误

c xcode clang c11 threads.h

10
推荐指数
1
解决办法
6264
查看次数

标签 统计

c ×6

c11 ×5

multithreading ×3

clang ×1

compiler-construction ×1

gcc ×1

threads.h ×1

xcode ×1