개발자_이훈규
천천히, 빠르게. 개발자의 Repository
개발자_이훈규
전체 방문자
오늘
어제
  • 분류 전체보기 (473)
    • 티스토리 (4)
    • 개발자 뉴스 (2)
    • 소프트웨어 (203)
      • C (7)
      • c++ (25)
      • Objective-C (3)
      • Do it! 반응형 웹디자인 (4)
      • openGL (8)
      • Java (24)
      • Jni (3)
      • Android (9)
      • Wordpress (2)
      • 버그 만난 후 느낀점 (2)
      • Git (3)
      • node js (2)
      • window tablet (1)
      • HTML (3)
      • javascript (3)
      • perl (1)
      • AngularJS (0)
      • JSON (0)
      • Docker (3)
      • python (5)
      • jQuery (1)
      • MFC (4)
      • cocos studio (6)
      • Golang (1)
      • SQLite3 (0)
      • Spring Boot (8)
      • thymeleaf (0)
      • Django (0)
      • iOS (3)
      • skia (0)
      • VBA (0)
      • PHP (2)
      • Oracle (1)
      • JSP (0)
      • R (0)
    • TCP IP (2)
    • 금융 (0)
      • 금융 Study (0)
      • 금융 Archive (0)
      • 금융 Article (0)
    • 개인 프로젝트 (7)
      • gif 홈페이지 만들기 (0)
      • study app만들기 (0)
      • 크롤러 만들기 (1)
      • 카툰 홈페이지 만들기 (1)
      • 외주 홈페이지 만들기 (3)
      • 웹 홈페이지 만들기 (0)
      • 미디어 서버 만들기 (0)
      • 소개팅 어플 만들기 (0)
      • 인스타그램 풀스택 클론 코딩(인강 노트) (0)
      • 주식 모의거래 만들기 (1)
    • html php mysql (0)
    • node.Js (2)
    • 일상 (2)
    • 빈공간 uml 공부 (0)
    • Ubuntu(linux) (12)
    • 맥OS (10)
      • android 설치하기 (2)
    • Programming quizzes (0)
    • IoT (구 유비쿼터스) (16)
      • 라즈베리 파이 (11)
      • 아두이노 (5)
    • 하드웨어 (5)
      • 아수스 비보탭 노트8 asus vivotap no.. (2)
      • 크레마 카르타 (3)
    • 분석할 문장, 구문, 코드 (0)
    • 키보드 (1)
      • 해피해킹 (1)
    • 코드 라이언 (0)
    • 전자기기 (4)
    • Ted (0)
    • NAS (0)
    • 알고리즘 (0)
    • 연합인포맥스 (0)
    • 이벤트 응모함 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 설명
  • 방법
  • C
  • GIT
  • C++
  • 코드
  • 설치
  • error
  • ubuntu
  • CODE
  • Example
  • 예제
  • Python
  • 에러
  • 개발
  • 소스
  • Java
  • 우분투
  • install
  • 라즈베리 파이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자_이훈규

천천히, 빠르게. 개발자의 Repository

소프트웨어

[c++] fwrite의 thread-safety란

2014. 2. 3. 15:26

1.

fwrite의 기능은 thread에 safety하지 못한가?

구글링을 해보니깐 thread-safe와 atomic이란 두개의 개념이 존재했다. 이것 먼저 집고 가자.



2. 

thread-safe란

멀티 thread에 의한 동시에 작업되는 공간에서 보장된 신뢰도 있는 작업을 할 수 있는 데이터 구조에 대한 것을 의미한다.

(http://en.wikipedia.org/wiki/Thread_safety)



3. 

atomic이란

대략 자원경쟁을 막는 하나의 데이터를 보호하는 것같은데.. 찾기가 어렵네;

(http://2cpu.co.kr/bbs/board.php?bo_table=QnA&wr_id=286485)


정리 : atomic이란 원자와 같은 성질을 같은 구조로 thread safety도 만족하면서 예상되는 결과도 보장해준다. 하지만 thread safety는 안정성은 보장해주지만 결과는 보장하지 않는 구조로 다이어그램으로 볼때 thread safety 안에 atomic이 들어 있는 구조가 된다.



4.

CRT함수가 위험하단 포스트를 찾았다. create thread를 한다음에 CRT함수를 사용하면 memory leak이 생긴다고 한다.

(http://process3.blog.me/20093839045)

하지만 CRT함수는 윈도우에서의 함수이기 때문에 리눅스 사용중인 본인은 해당하지 않는다. 



5.

결론.

fwrite, fread는 c언어의 함수로 내부에 자신의 메모리를 갖고 있어서 멀티 스레드 환경에서 thread safety하지 않다.

반면 write, read는 시스템 함수이기 때문에 thread safety를 갖고 있어서, multi thread환경에서는 write, read를 사용해야 한다.


저작자표시 비영리 (새창열림)

'소프트웨어' 카테고리의 다른 글

[c++] pthread의 detach란...  (0) 2014.02.04
[펌] pthread 자원 해제에 대한 이야기(pthread_detach, pthread_attr_setdetachstate)  (0) 2014.02.04
[c++] 변수 선언에 대해서  (0) 2014.01.29
[c++] const char vs char 비교 실험  (0) 2014.01.28
[c++] thread 기본 구조, 모양  (0) 2014.01.28
    '소프트웨어' 카테고리의 다른 글
    • [c++] pthread의 detach란...
    • [펌] pthread 자원 해제에 대한 이야기(pthread_detach, pthread_attr_setdetachstate)
    • [c++] 변수 선언에 대해서
    • [c++] const char vs char 비교 실험
    개발자_이훈규
    개발자_이훈규
    혼자 꽁양꽁양 개발하면서 놀아요~ - 노트같은 블로그

    티스토리툴바