[Windows System Programming] 쓰레드 풀링(Pooling)
·
내가 공부한 것들/Windows 시스템 프로그래밍
[공부했던 것을 되짚어보며] 지금까지 쓰레드에 대한 것과 동기화에 대한 개념들을 쭉 공부해왔습니다. 쓰레드가 무엇인지, 쓰레드를 만들고 소멸시키는 것부터 동기화가 왜 필요한지에 대해서 알게 되었고요. 이제 이 쓰레드를 어떻게 활용할 수 있을까를 고민하게 되었습니다. 멀티 쓰레드 프로그래밍을 써먹을 수 있는 것은 알겠는데, 이걸 어디에 쓸까. 책에서는 "쓰레드 풀"이라는 것을 통해 지금까지 배웠던 내용을 한 번 정리할 기회를 갖게 되었습니다. 저도 이걸 따라 구현하면서 아직도 이해가 잘 안되는 부분들이 많습니다. 이번 글에서는 많이 미숙한 부분이 보일 것입니다. 그 부분에 있어서 양해 부탁드립니다. [쓰레드 풀에 대한 이해] 우선 "쓰레드 풀"이라는 개념에 대해서 좀 이해를 하고 넘어갈까 합니다. 이게 도..
[Windows System Programming] 쓰레드 동기화 기법 - (2)
·
내가 공부한 것들/Windows 시스템 프로그래밍
[공부했던 것을 되짚어보며] https://sevenshards.tistory.com/62 [Windows System Programming] 쓰레드 동기화 기법 - (1) [공부했던 것을 되짚어보며] 이전에 공부했던 내용은 쓰레드의 생성과 소멸과 관련해서 공부를 했었습니다. 그리고 여기서 동시접근에 대한 문제점도 다뤘었습니다. 실제로 strtok과 같은 ANSI C sevenshards.tistory.com 이전 글에서 다뤘던 내용은 임계 영역에 대한 개념을 이해하고 이에 대한 동기화 방법에 대한 것이었습니다. '메모리 접근에 대한 동기화'를 다뤘었고, 이번 글에서는 '쓰레드의 실행순서'를 위주로 다루고자 합니다. [실행순서에 있어서의 동기화] "쓰레드의 실행순서를 동기화한다"는 말은 정확하게 표현하면..
[Windows System Programming] 쓰레드 동기화 기법 - (1)
·
내가 공부한 것들/Windows 시스템 프로그래밍
[공부했던 것을 되짚어보며] 이전에 공부했던 내용은 쓰레드의 생성과 소멸과 관련해서 공부를 했었습니다. 그리고 여기서 동시접근에 대한 문제점도 다뤘었습니다. 실제로 strtok과 같은 ANSI C 라이브러리 함수를 사용할 때에는 동시 참조의 위험성이 있다고 했습니다. 멀티 쓰레드 기반 프로그램에서 쓰레드에서 strtok을 사용하면 다른 쓰레드에서도 내부 정적 변수에 접근이 가능해집니다. 다른 쓰레드에서 이 함수를 호출할 때에는 정적 변수를 덮어쓰는 문제가 생기죠. 그래서 앞으로는 CreateThread가 아닌 ANSI 표준 라이브러리를 이용한 _beginthreadex 함수를 사용하기로 했습니다. 이 함수는 CretateThread와 같이 단순하게 쓰레드만 생성하지 않습니다. 쓰레드를 생성하기 앞서서 쓰..
[Windows System Programming] 쓰레드의 생성과 소멸
·
내가 공부한 것들/Windows 시스템 프로그래밍
[공부했던 것을 되짚어보며] https://sevenshards.tistory.com/56 [Windows System Programming] 쓰레드의 이해 [공부했던 것을 되짚어보며] 사실 지금까지 우리는 프로세스에 대한 이야기만 계속 늘어놨습니다. 커널 오브젝트에, 핸들에, 핸들 테이블과 프로세스 간 통신 이야기만 했습니다. 그리고 쓰레드 sevenshards.tistory.com 지난 글에서는 쓰레드에 대한 개념적인 이해를 했습니다. 쓰레드를 왜 쓰는지, 그리고 Windows에서의 쓰레드는 어떤 것인지에 대해서도 확인했습니다. 이번 글에서는 쓰레드를 직접 생성하고 소멸하는 과정을 거치면서 배웠던 내용을 정리해보려고 합니다. [Windows에서의 쓰레드 생성과 소멸] 이전 글에서 다뤘던 내용은 쓰레드..
[Windows System Programming] 쓰레드의 이해
·
내가 공부한 것들/Windows 시스템 프로그래밍
[공부했던 것을 되짚어보며] 사실 지금까지 우리는 프로세스에 대한 이야기만 계속 늘어놨습니다. 커널 오브젝트에, 핸들에, 핸들 테이블과 프로세스 간 통신 이야기만 했습니다. 그리고 쓰레드는 뒤에서 이야기한다고 했었죠. 도대체 '쓰레드'라는게 뭐길래? 아마 이걸 공부하시는 분들이라면 '멀티 쓰레드'라는 말은 한 번쯤은 들어보셨을겁니다. '프로세스보다 더 잘게 쪼갠 것이 쓰레드다' 라고 알고 계신 분들도 있을거고요. 대충은 맞는 말입니다. 프로세스와 관련된 내용을 잘 알고 계신다면 쓰레드는 크게 어려울 것이 없습니다. [쓰레드(Thread)란 무엇인가] 일단 쓰레드 이야기를 하기 전에 우리가 지금까지 공부했던 내용을 좀 톺아보고 갈까 합니다. 왜 쓰레드가 필요하게 되었는지, 어째서 생겨났는지를 알기 위해서는..
sevenshards
'쓰레드' 태그의 글 목록