C 라이브러리는 GNU/Linux용 C11 스레드를 구현하고 있습니까?
C11과 C11의 스레드에 대해서는 많은 질문이 있었습니다만, 그 어디에서도 명확한 답을 찾을 수 없었습니다.
C 라이브러리는 GNU/Linux에서 사용할 수 있는 C11 스레딩 인터페이스를 구현하고 있습니까?예를 들어 "옵션"을 제공합니다.<threads.h>
스레드 서포트 라이브러리는thrd_create()
페이지 376에 가까운 C11 표준에서.
이상적으로는 공통/일반/멀티 아키텍처(GNU/Linux, x86_64, portable-ish 등)에 대해 공통, 오픈 소스 또는 무료 라이브러리를 찾고 싶습니다.
보다 유용하고 관련성이 높은 SO 링크:
- 이것저것
glibc
; - 기준에 대해 말하는 이 사람;
- 에 관한 이번 일
clang
; - 이것은 일반적인 C11에 관한 것이고, 다른 하나는 Windows 및 기타 플랫폼에 관한 것입니다.
- C++11 스레드에 더 관심이 있지만, 저는 C11에만 관심이 있습니다.
라이브러리의 일부 비스타 옵션:
glibc
라이브러리는 없습니다.2012년 이후 해결되지 않은 버그가 있습니다.GSoC 제안이 있었지만 받아들여지지 않은 것 같습니다.- LLVM/Clang 프로젝트에는 C 라이브러리가 없습니다.
-
모슬 라이브러리하지 않습니다. - Newlib 라이브러리는 스레드화(docs)를 지원하지만 사용하지 않음
pthread
스레드도 C11 스레드도 없습니다. - uClibc는 그렇지 않다.
- 이 비교 차트는 의심스럽다(예를 들어 C11 스레드 로컬 스토리지를 지원하는 증거가 Musl 소스에는 없다).
- BSD에 대한 다양한 게시물,
- Pelles: 닫혀 있고 Windows 전용으로 표시됩니다.
POSIX 스레드(많은 훌륭한 옵션), Windows, IDE, C++11에는 관심이 없습니다(GNU가libstdc++
LLVM » LLVM/Clanglibc++
C++11을 std::thread
을 사용해요.-pthread
)
감사합니다!
(re-)편집: 질문이 다시 열렸으므로 정리하기 위해 답변할 내용을 마이그레이션했습니다.
Musl이 C11 스레드를 구현(2014년 9월~이슈)했습니다!
이 최근 2014년 7월-Sep 메일링 리스트의 투고와 그 리스트에 기재된 기타 대화에 따르면 현재(2014-09-07년 현재) Musl 라이브러리는 비교표이지만 C11 스레드인터페이스를 구현하고 있는 것으로 보입니다.이 글에서는 이를 반영하고 있지 않습니다.
이 질문이 다시 열렸기 때문에 이 내용을 올바른 답변으로 옮겼습니다.
마지막으로 GNU LIBC 2.28은 C11 ISO 스레드를 지원합니다.
Archlinux, Gentoo 및 Suse Tumbleweed는 빠르게 지원할 것으로 예상됩니다.올해 말 Fedora와 Ubuntu 및 기타 2019년 이후.
https://github.com/jtsiomb/c11threads은 단일 헤더에 포함된 "POSIX 스레드 위의 C11 sleads.h 구현"입니다.
음, GCC 4.9.0은 실제로 C11 표준을 상당히 지원하는 것 같습니다(적어도 2014년 6월 말경에 웹 문서가 수정된 이후).
https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Standards.html 에서
C11로 알려진 C 표준의 네 번째 버전은 2011년에 ISO/IEC 9899:2011로 발행되었다. GCC는 -std=c11 또는 -std=iso9899:2011을 사용하여 이 표준을 실질적으로 완벽하게 지원하고 있다. (개발 중에 이 표준 버전의 초안은 C1X로 지칭되었다.)
그리고 https://gcc.gnu.org/gcc-4.9/changes.html에서
ISO C11 atomics(_Atomic 타입 지정자 및 한정자 및 헤더)가 지원되게 되었습니다.ISO C11 범용 선택(_Generic 키워드)이 지원되게 되었습니다.ISO C11 스레드 로컬스토리지(_Thread_local, GNU C__thread와 유사)가 지원되게 되었습니다.ISO C11 지원은 현재 ISO C99 지원과 동일한 수준의 완전성을 갖추고 있습니다.대부분 완전한 모듈로 버그, 확장 식별자(-fextended-identifier를 사용하는 코너 케이스 제외), 부동소수점 문제(주로 Annex F 및 G의 옵션 C99 기능과 완전히 관련되지는 않음), 및 옵션 Annex K(Bounds-che)입니다.CKING 인터페이스) 및 L(분석 가능성)이 있습니다.새로운 C 확장 __auto_type은 GNU C에서 C++11 auto 기능의 서브셋을 제공합니다.
그것으로부터, 페달이 금속에 부딪혔을 때 이 모든 것이 무엇을 의미하는지 알 수 없다.환경을 최신 GCC 4.9.0 릴리스 및 몇 가지 간단한 드라이버 프로그램으로 업그레이드하면 구현의 양과 양을 확인할 수 있습니다.
도움이 됐으면 좋겠다.
FreeBSD는 다음을 제공합니다.threads.h
FreeB 이후SD 10.0 프로그램을 libstdsthreads에 링크해야 합니다.
PDCLib(Public Domain C 표준 라이브러리)에는 threads.h에 대한 AFAICT의 완전한 지원이 포함되어 있으며 pthreads에 대한 래퍼는 아닙니다.
FreeBSD는 posix 스레드를 감싸고 있는 것 같습니다.FreeB는 이쪽에서 보실 수 있습니다.SD c11 스레드사이그윈에서 이걸 쓸 수 있었어요아직까지는 문제없지만 아직 그렇게 많이 써본 적은 없어요.
언급URL : https://stackoverflow.com/questions/24557728/does-any-c-library-implement-c11-threads-for-gnu-linux
'programing' 카테고리의 다른 글
vue.js 앱 내에서 외부 js 라이브러리 사용 (0) | 2022.08.28 |
---|---|
Vue: 템플릿 루트에서 v-for directive를 허용하지 않음 (0) | 2022.08.28 |
java.net 를 참조해 주세요.Socket Exception : 소켓 장애 : EPERM (조작 불가) (0) | 2022.08.28 |
텍스트 입력 시 확장 가능한 행이 축소되는 Vuetify 데이터 테이블 (0) | 2022.08.28 |
vue js를 사용하여 날짜 범위를 필터링하려면 어떻게 해야 합니까? (0) | 2022.08.28 |