각 스레드는 독립적인 실행 Context를 가짐
→ 스레드 ID, 스택, 스택 포인터, 프로그램 카운터, 조건 코드, 범용 레지스터 값
모든 스레드는 프로세스의 나머지 자원을 공유
각 스레드는 자기만의 스택을 가지며 보통 독립적으로 접근
하지만 운영체제가 스택 간 보호를 강제하지 않기 때문에, 다른 스레드의 스택 포인터를 얻으면 그 스택도 읽고 쓸 수 있음
예제(sharing.c
)에서는 전역 변수 ptr
을 통해 피어 스레드가 메인 스레드 스택 내용을 간접 참조하는 상황을 보여줌