programing

C 라이브러리가 GNU / Linux 용 C11 스레드를 구현합니까?

projobs 2021. 1. 16. 09:13
반응형

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에만 관심이 있습니다.

라이브러리에 대한 일부 비스타 터 옵션 :

내가 하지 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.hFreeBSD 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

반응형