a lotC11とC11のスレッド化に関する質問がありましたが、決定的な答えはどこにもありません。
any CライブラリはGNU/Linux-likeで使用可能なC11スレッドインターフェースを実装しますか?たとえば、「オプション」を提供します_<threads.h>
_および スレッドサポートライブラリthrd_create()
のように、 C11標準 from p付近376。
理想的には、common/generic/multiアーキテクチャ(GNU/Linux、x86_64、portable-ishなど)向けの、一般的、オープンソース、または無料のライブラリを見つけたいと考えています。
より便利で関連性の高いいくつかのSOリンク:
glibc
;clang
;ライブラリのスターター以外のオプション:
glibc
ライブラリ しない ; 2012年から 未解決のバグ があります。 GSoCの提案 がありましたが 受け入れられません ;pthread
もC11スレッドも使用していません。私はnotPOSIXスレッド(多くの素晴らしいオプション)、Windows、IDE、C++ 11(I GNU _libstdc++
_およびLLVM/Clang _libc++
_は、C++ 11の_std::thread
_を提供します。これは_-pthread
_を使用します)
ありがとう!
(再)編集:質問が再度開かれたので、 移行されたコンテンツを回答に クリーンアップします。
musl 現在(2014年9月現在)、C11スレッドを実装しています!
この最近のmuslメーリングリストの投稿 および 2014年7月から9月のそのリスト に関する他の会話によると、 musl ライブラリが2014-09-07)では、C11スレッドインターフェースを実装していますが、 比較チャート ;この文書の執筆時点では、これを反映していません。
この質問が再び開かれたため、このコンテンツを適切な回答に移動しました。
最後に GNU LIBC 2.28 はC11 ISOスレッドをサポートします。
Archlinux、Gentoo、Suse Tumbleweedがすぐにサポートすると思います。今年後半には、FedoraとUbuntu、およびその他の2019年以降にリリースされます。
https://github.com/jtsiomb/c11threads は「POSIXスレッドを介したCrivial C11 threads.hの実装」です。単一のヘッダーに含まれます。
うーん、GCC 4.9.0は実際にはC11標準の実質的なサポートを提供しているようです(少なくとも2014年6月の終わり頃にWebドキュメントが変更されて以来)。
から https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Standards.html
C11として知られるC標準の4番目のバージョンは、2011年にISO/IEC 9899:2011として公開されました。 GCCは、この標準を実質的に完全にサポートしており、-std = c11または-std = iso9899:2011で有効になっています。 (開発中、この標準バージョンのドラフトはC1Xと呼ばれていました。)
そして https://gcc.gnu.org/gcc-4.9/changes.html から
ISO C11アトミック(_Atomicタイプ指定子および修飾子とヘッダー)がサポートされるようになりました。 ISO C11汎用選択(_Genericキーワード)がサポートされるようになりました。 ISO C11スレッドローカルストレージ(_Thread_local、GNU C __thread)と同様)がサポートされるようになりました。ISOC11サポートは、ISO C99サポートとほぼ同じレベルの完全性を備えています。識別子(-fextended-identifiersが使用されている場合の例外を除く)、浮動小数点の問題(主に、ただし完全にAnnexes FおよびGのオプションのC99機能に関連しているわけではありません)およびオプションのAnnexes K(境界チェックインターフェイス)およびL(分析可能性)。新しいC拡張__auto_typeは、C++ 11 autoの機能のサブセットをGNU C.
そのことから、ペダルが金属に当たったときにそのすべてが実際に何を意味するのかを伝えるのは困難です。環境を最新のGCC 4.9.0リリースにアップグレードし、いくつかの単純なドライバープログラムを実行することで、実装の量を確認できます。
それが役に立てば幸い。
FreeBSDはthreads.h
FreeBSD 10.0以降プログラムはlibstdsthreadsにリンクする必要があります。
PDCLib(パブリックドメインC標準ライブラリ)には、threads.hのAFAICT完全サポートが含まれており、pthreadのラッパーではありません。
FreeBSDはposixスレッドをラップしているようです。ここにあります: FreeBSD c11 threads 。これをCygwinで使用できました。今のところ問題はありませんが、私はまだあまり使いません。