Benjamin (@jehokim) on Threads
www.threads.net
코딩을 처음 배울 때 가장 어려웠던 단어는 쓰레드였습니다.
쓰레드란 말만 나오면 가슴속이 답답했습니다.
으아, 도대체 쓰레드가 뭐냐고.
교수님들은 다들 칠판에 실을 그리며 코드가 흘러가는 흐름 같은 거라고 말해줬습니다.
‘아니, 코드가 뭘 어딜 흘러가냐고.’
도저히 이해할 수가 없었습니다.
회사에 들어가서야 깨달았습니다.
멀티 쓰레드 프로그램을 실제로 디버깅해보면서.
_beginthreadex 함수와 EnterCriticalSection 함수를 사용해서 버그를 고치는 과정에서 번쩍 깨달음이 왔던 기억이 납니다.
그때까지 저는 스택이 프로세스 당 1개 있는 건 줄로 잘못 알고 있었습니다.
쓰레드 스택이란 표현을 듣는 순간 느낌이 왔습니다.
_beginthreadex를 통해 쓰레드를 하나 생성할 때마다 스택이 함께 생성된다는 것.
그 스택 크기는 1MB라는 것을 알게 되면서 기뻤습니다.
(커널 모드로 전환될 땐 고작 12KB의 커널 스택을 사용한다는 것도 나중에 알게 됐습니다.)
아, 이제야 뭔지 알 것 같아.
지역 변수를 사용하면 멀티 쓰레드에서 문제가 없다느니, 쓰레드 로컬 스토리지가 뭐니 하는 말들이 그제야 이해가 되기 시작했습니다.
어제부터 쓰레드(SNS)를 시작했는데, 쓰레드란 단어를 계속 보다 보니 고통스러워하던 옛날 생각이 나서 주절거려 봤습니다. (웃음)
쓰레드 주소는 여기입니다. 좀 더 가벼운 생각들을 자주 적어보려고 합니다.
https://www.threads.net/@jehokim
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 7월 22일 오전 6:54
단어가 아니고 개념일듯
나도 두리뭉실하지 않고 명확하고 싶다