티스토리 뷰


* 프로세스

- OS로 부터 주소공간, 메모리, 파일등을 할당받는 실행의 단위.

- 쉽게 말해, 우리가 어떤 프로그램을(롤, 워드, 엑셀과 같은) 실행 했을때 메모리에 올라가는 단위라 생각하자

- 각각의 프로세스는 완벽히 독립적( Code, Data, Heap, Stack )이다. (워드를 여러 개 실행 했다고 생각해보자)


* 스레드

- 한 프로세스내에서 동작하는 여러 실행의 흐름.

- 프로세스 내의 쓰레드들은 스택공간을 제외한 나머지 공간과 시스템 자원( Code, Data, Heap )을 공유한다.


 스레드는 시스템자원(데이터 영역 메모리)를 공유하기 때문에, 실제로 전역변수를 사용하여 데이터를 공유할 수 있다. 또한 코드를 공유하기 때문에 같은 함수에 접근이 가능하다.  이러한 장점은 스레드간 충돌문제를 일으킬 수 있으므로, 동기화 문제를 고려하여 설계하여야 한다.

'programming > etc' 카테고리의 다른 글

[linux] fedora 에서 .jar 파일 클릭 실행  (0) 2017.04.24
[etc] 암달의 법칙  (0) 2017.02.24
[etc] 유니코드  (0) 2017.02.16
[etc] 윈도우 라이브러리 파일  (0) 2017.02.02
[etc] C 메모리 구조  (0) 2016.05.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함