2014-08-27 5 views
-1

calloc reference in cppreference에있는 calloc에 ​​대한 참고 자료를 읽었을 때 얻지 못한 다음 팁을 발견했습니다.c11 표준의 calloc에 ​​대해 나와있는 팁에 대한 예를 들어 설명해 주시겠습니까?

  • 은 calloc는 스레드 안전 : 그것은 정적 스토리지 만 인수 통해 표시 메모리 위치를 액세스하는 것처럼 작동되는 것은 아니다.

  • 메모리 영역 할당 해제 또는 무료 realloc을 동기화를-함께 이전 호출 동일 또는 동일한 메모리 영역의 일부를 할당은 calloc 호출. 이 동기화는 다음에 할당 해제 함수 에 의해 메모리에 액세스하고 전에 calloc에 ​​의해 메모리에 액세스하기 전에 이 발생합니다.

이해하는 데 도움이되는 예제를 제공 할 수 있습니까?

답변

1

멀티 스레드 환경 (많은 스레드가 동시에 실행되고, 미친 듯이 메모리를 할당하거나 해제하거나 재 할당하는 데 문제가없는 경우)에서 calloc을 사용하면 문제가 없습니다.

모든 C 및 C++ 함수가 이러한 보증을 제공하는 것은 아니므로 설명서에서 언급해야합니다. 일반적으로 스레드 안전성이 언급되지 않은 경우 스레드 안전성이 없다고 가정해야합니다.

+0

** 스레드 안전 **이라는 것을 알고 있습니다. 누군가가 그것에 대해 이야기 할 때 선택할 수는 있지만, 멀티 스레드 프로그래밍 연습은 거의하지 않았습니다 .BTW, 두 번째에 대한 의견을 보내지 않으셨습니까? 팁 내 질문에. – waterd