C 라이브러리가 GNU / Linux 용 C11 스레드를 구현합니까?
가 있었다 많은 C11 및 C11 스레딩에 대한 질문, 그러나 나는 확실한 대답을 어디서나 볼 수 없습니다 :
않습니다 어떤 C 라이브러리는 같은 리눅스 GNU /에 C11 스레딩 인터페이스 사용 가능한 구현? 예를 들어는 "선택"을 제공 <threads.h>
하고, 쓰레드 지원 라이브러리 와 같은 thrd_create()
에서, C11 표준 에 가까운 쪽. 376.
이상적으로는 공통 / 일반 / 다중 아키텍처 (예 : GNU / Linux, x86_64 또는 이식 가능)를위한 공통, 오픈 소스 또는 무료 라이브러리를 찾고 싶습니다.
더 유용하고 관련성이 높은 몇 가지 SO 링크 :
- 이것 과 이것 에
glibc
; - 이것은 표준에 대해 말하는 것입니다.
- 이것 에 대해
clang
; - 이것은 일반적으로 C11에 대한 것이고 이것은 Windows 및 기타 플랫폼에 대한 것입니다.
- C ++ 11 스레딩 에 대한 자세한 내용 은 C11에만 관심이 있습니다.
라이브러리에 대한 일부 비스타 터 옵션 :
glibc
도서관 은하지 않습니다 ; 가 열린 버그 2012 보낸 사람; 거기 GSoC 제안 하지만 보인다 허용되지 않습니다 ;- LLVM / Clang 프로젝트에는 C 라이브러리가 없습니다.
-
musl 라이브러리 는 그렇지 않습니다 .-이제 그렇습니다! 아래 편집을 참조하고 답변하십시오 . - Newlib 라이브러리는 스레딩 ( docs )을 지원 하지만
pthread
C11 스레드는 사용 하지 않습니다. - uClibc 는 그렇지 않습니다.
- 이 비교 차트는 모호합니다 (예 : C11 스레드-로컬 스토리지 지원에 대한 musl 소스에 증거가 없음).
- BSD 에 대한 다양한 게시물 ,
- Windows 전용으로 표시되는 Pelles .
내가 하지 POSIX 스레드 (많은 훌륭한 옵션)에 관심이있는, 윈도우, IDE를, 나 C ++는 11 (I는 GNU 알고 libstdc++
및 LLVM / 연타가 libc++
C ++ 11 개의를 제공 std::thread
하는 용도 -pthread
)
감사!
(재) 편집 : 질문이 다시 열렸으므로 정리 를 위해 답변 하기 위해 콘텐츠를 마이그레이션 했습니다.
musl (2014 년 9 월 현재)은 C11 스레드를 구현합니다!
에 따르면 이 최근 musl 메일 링리스트 게시물 에 다른 대화 7월 9 월 2014 년 그 목록 , 그것은 나타납니다 그 musl의 라이브러리 지금 구현 (2014년 9월 7일의 등) C11 스레드 인터페이스,하지만 비교 차트 ; 이 글에서 이것을 반영하지 않습니다.
이 질문이 다시 열렸 기 때문에이 내용을 올바른 답변으로 옮겼습니다.
마지막으로 GNU LIBC 2.28 은 C11 ISO 스레드를 지원합니다.
나는 Archlinux, Gentoo 및 Suse Tumbleweed가 그것을 빨리 지원할 것이라고 가정합니다. 올해 말에 Fedora와 Ubuntu 및 기타 2019 년 이후에 출시되었습니다.
https://github.com/jtsiomb/c11threads 는 "POSIX 스레드를 통한 임시 C11 threads.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 원자 (_Atomic 유형 지정자 및 한정자 및 헤더)가 지원됩니다. 이제 ISO C11 일반 선택 (_Generic 키워드)이 지원됩니다. 이제 ISO C11 스레드 로컬 저장소 (_Thread_local, GNU C __thread와 유사)가 지원됩니다. ISO C11 지원은 이제 ISO C99 지원과 유사한 수준의 완전성에 있습니다. 실질적으로 완전한 모듈로 버그, 확장 식별자 (-fextended-identifiers가 사용되는 코너 케이스를 제외하고 지원됨), 부동 소수점 문제 (주로 선택 사항과 완전히 관련되지는 않음) 부록 F 및 G의 C99 기능) 및 옵션 부록 K (경계 검사 인터페이스) 및 L (분석 가능성). 새로운 C 확장 __auto_type은 GNU C에서 C ++ 11 auto 기능의 하위 집합을 제공합니다.
그것에서 페달이 금속에 닿았을 때 그 모든 것이 실제로 무엇을 의미하는지 말하기는 어렵습니다. 환경을 최신 GCC 4.9.0 릴리스로 업그레이드하고 몇 가지 간단한 드라이버 프로그램을 통해 구현되는 정도를 확인할 수 있습니다.
도움이 되었기를 바랍니다.
FreeBSD는 threads.h
FreeBSD 10.0부터 제공합니다 . 프로그램은 libstdsthread에 대해 링크되어야합니다.
PDCLib (공개 도메인 C 표준 라이브러리)는 threads.h에 대한 AFAICT 전체 지원을 포함하며 pthread를 둘러싼 래퍼가 아닙니다.
FreeBSD는 posix 스레드를 감싸는 것처럼 보입니다. 여기에서 찾을 수 있습니다 : FreeBSD c11 threads . Cygwin에서 이것을 사용할 수있었습니다. 지금까지 문제는 없지만 아직 많이 사용하지 않았습니다.
ReferenceURL : https://stackoverflow.com/questions/24557728/does-any-c-library-implement-c11-threads-for-gnu-linux
'programing' 카테고리의 다른 글
Roslyn은 크로스 플랫폼입니까? (0) | 2021.01.16 |
---|---|
HTML 텍스트 영역에 대한 서식있는 텍스트 편집기 대체 (0) | 2021.01.16 |
사용 가능한 iPhone 웹 애플리케이션 JavaScript UI 라이브러리 / 프레임 워크 (0) | 2021.01.16 |
SIFT 알고리즘을 사용하여 두 이미지가 얼마나 유사한 지 계산하는 방법은 무엇입니까? (0) | 2021.01.16 |
Haskell의 화살표 이해 (0) | 2021.01.16 |