호빗의 인간세상 탐험기

JAVA 쓰레드 본문

IT이야기

JAVA 쓰레드

딜레이라마 2017. 1. 19. 19:26
반응형

1. 쓰레드의 문제점

자 바 프 로 그 래 밍 을 할 때 쓰 레 드 에 관 련 된 문 제 가 생 길 경 우, 모 른 척 하 고 바 로 묻 어 버 리 는 수 도있 다. 하 지 만 현 실 에 서 는 그 럭 저 럭 넘 어 가 서 는 안 된 다( 최 악 의 경 우 광 분 한 직 장 상 사 의 철 퇴 에 맞아 비 명 횡 사 할 지 도 모 른 다 ) . 실 제 제 품 으 로 판 매 될 만 한 코 드 를 짜 내 려 면 이 러 한 문 제 들 로 부 터절 대 자 유 로 울 수 없 다. 불 행 하 게 도 자 바 에 서 의 쓰 레 드 에 관 련 된 문 제 를 심 도 있 게 다 뤄 놓 은 책 은거 의 없 다 고 해 도 과 언 이 아 니 다. 가 령 있 다 고 하 더 라 도 이 러 한 책 들 에 서 제 시 된 예 제 들 조 차 도 멀티 쓰 레 드 환 경 에 서 문 제 를 일 으 키 는 경 우 가 종 종 있 어 왔 다.

사 실 멀 티 쓰 레 딩 은 자 바 코 드 전 반 을 혼 돈 속 에 몰 아 넣 을 수 있 다. 왜 냐 하 면 여 러 분 은 어 떠 한 시점 에 정 확 히 어 떠 한 객 체 나 어 떠 한 메 소 드 가 사 용 되 는 지 절 대 로 예 측 할 수 없 기 때 문 이 다. 이 러 한사 실 들 때 문 에 멀 티 쓰 레 딩 환 경 을 위 해 코 딩 하 는 것 은 매 우 어 려 운 일 이 다. 가 장 좋 은 해 결 책 은모 든 생 각 을 쓰 레 드로 부 터 시 작 하 는 것 이 다. 비 록 여 러 분 이 차 후 에 코 드 를 멀 티 쓰 레 드 환 경 에적 용 할 것 이 아 니 라 하 더 라 도 이 렇 게 발 상 을 전 환 하 는 것 은 매 우 중 요 한 일 이 다. 불 행 하 게 도, 쓰레 드 안 전 성 을 확 보 하 기 위 해 서 는 성 능 이 나 빠 지 는 문 제 점 을 감 수 해 야 하 는 경 우 가 있 다. 따 라 서,필 자 는 여 러 분 의 모 든 코 드 가 쓰 레 드 에 안 전 하 길 바 라 지 않 는 다. 왜 냐 하 면 쓰 레 드 에 안 전 한 코 드는 때 에 따 라 서, 성 능 에 지 극 히 많 은 희 생 을 감 수 해 야 하 는 경 우 가 있 기 때 문 이 다. 그 럼 에 도 불 구하 고, 여 전 히 코 드 를 디 자 인 함 에 있 어 서 는 항 상 쓰 레 드 를 생 각 해 야 한 다. 비 록 구 현 상 에 서 는 쓰 레드 안 전 성 을 포 기 하 는 경 우 라 도 이 는 마 찬 가 지 이 다.


2. 쓰레드와 프로세스

운 영 체 제 수 준 의 개 념 들 중 에 서 어 떻 게 보 면 쓰 레 드 는 프 로 세 스 에 비 해 서 오 히 려 더 중 요 한 개 념이 다. 쓰 레 드 란 도 대 체 어 떤 녀 석 일 까 ? 쓰 레 드 란 운 영 체 제 시 스 템 의 깊 은 곳 에 있 는 데 이 터 구 조이 다. 따 라 서, 이 데 이 터 구 조 를 파 악 하 는 것 이 쓰 레 드 의 정 체 를 밝 히 는 데 도 움 이 될 수 있 을 것같 다.프 로 세 스 를 위 한 데 이 터 구 조 에 는 메 모 리 와 관 련 된 모 든 것 들 을 기 록 한 다( 광 역 주 소 공 간, 파 일핸 들 테 이 블 등 등 ) . 여 러 분 이 어 떤 프 로 세 스 가 실 행 되 도 록 하 기 위 해 서 실 행 중 인 프 로 세 스 를 디스 크 로 옮 긴 다 고 가 정 해 보 자. 아 마 도 시 스 템 코 어 메 모 리 의 많 은 부 분 을 포 함 하 고 있 는 프 로 세 스데 이 터 구 조 전 체 가 디 스 크 로 저 장 되 어 야 할 것 이 다. 프 로 세 스를 생 각 한 다 면 당 연 히 메 모 리도생 각 해 야 만 한 다. 실 행 중 인 프 로 세 스 를 교 체 하 는 것 은 매 우 오 랜 시 간 이 걸 리 는 작 업 이 다. 왜 냐 하면 일 반 적 으 로 많 은 양 의 메 모 리 가 옮 겨 져 야 하 기 때 문 이 다. 이 러 한 컨 텍 스 트 스 왑( 현 재실 행 중 인 프 로 세 스 를 교 체 하 는 작 업 을 의 미 하 는 것 으 로 컨 텍 스 트 스 위 칭 이 라 고 도 불 린 다 )에 걸 리는 시 간 은 심 할 경 우 몇 초 가 될 수 도 있 다. 덜 엄 격 한 관 점 에 서 봤 을 때 자 바 에 서 가 상 머 신 은 프로 세 스 와 같 은 것 이 라 볼 수 도 있 다. 모 든 힙 메 모 리(n ew 키 워 드 를 통 해 서 할 당 되 는 메 모 리 )의데 이 터 는 프 로 세 스 에 속 해 있 는 부 분 이 지 쓰 레 드 에 속 해 있 는 부 분 은 아 니 다.

쓰 레 드 는 자 바 가 상 머 신 에 의 해 서 수 행 되 는 바 이 트 코 드 인 스 트 럭 션 의 순 서 라 고 생 각 하 면 된 다( 물 론, 여 기 서 이 야 기 하 는 쓰 레 드 는 자 바 에 서 의 쓰 레 드 이 다. 일 반 적 인 쓰 레 드 의 경 우 라 면,컴 퓨 터 에 서 수 행 되 는 네 이 티 브 인 스 트 럭 션 의 순 서 라 고 생 각 해 야 한 다. 계 속 되 는 내 용 에 서 도 필 자는 자 바 에 서 의 쓰 레 드 개 념 을 중 심 으 로 설 명 한 다 ) . 쓰 레 드 와 관 련 해 서 는 객 체 의 개 념 도 없 고 메 소드 의 개 념 도 없 다. 단 지 일 련 의 인 스 트 럭 션 들 만 이 존 재 할 뿐 이 다. 각 쓰 레 드 의 순 서 는 서 로 중 첩될 수 있 다. 즉, 동 시 에 여 러 개 의 쓰 레 드 가 수 행 될 수 있 다. 다 시 한 번 말 하 지 만 쓰 레 드 를 생 각할 때 에 는 메 소 드를 생 각 하 지 말 고 단 지 실 행 순 서만 을 생 각 하 기 바 란 다.

쓰 레 드 의 데 이 터 구 조 는 프 로 세 스 와 는 다 르 게 인 스 트 럭 션 들 에 대 한 순 서 를 기 록 하 고 있 다. 쓰 레 드에 는 현 재 컴 퓨 터 의 레 지 스 터 내 용 과 현 재 실 행 되 는 인 스 트 럭 션 의 위 치, 메 소 드 에 의 해 사 용 되 는런 타 임 스 택( 지 역 변 수 와 인 자 들 을 담 고 있 다 )이 저 장 된 다. 운 영 체 제 에 서 는 일 반 적 으 로 현 재 실 행중 인 쓰 레 드 를 바 꾸 는 데 있 어 서 단 순 한 과 정 을 거 친 다. 먼 저 일 련 의 레 지 스 터 값 들 을 쓰 레 드 의 지역 스 택( 쓰 레 드 데 이 터 구 조 안 에 존 재 한 다 )에 집 어 넣 고 이 쓰 레 드 데 이 터 구 조 를 리 스 트 의 어 딘가 에 집 어 넣 는 다. 다 음 순 서 는, 이 번 에 작 동 시 켜 야 할 쓰 레 드 의 데 이 터 구 조 를 리 스 트 로 부 터 꺼 내어 쓰 레 드 의 지 역 스 택 값 들 을 일 련 의 레 지 스 터 에 써 넣 는 다. 이 런 단 순 한 과 정 만 을 거 치 므 로 쓰레 드 간 에 교 체 를 하 는 작 업 은 매 우 효 율 적 이 며 고 작 해 야 수 밀 리 초 가 걸 리 는 작 업 이 다. 자 바 에 서의 쓰 레 드 는 실 제 상 으 로 가 상 머 신 내 부 의 상 태 에 불 과 한 것 이 다.지 역 변 수 와 인 자 값 들 이 저 장 되 는 런 타 임 스 택 은 쓰 레 드 데 이 터 구 조 의 한 부 분 이 다. 여 러 쓰 레 드가 자 신 만 의 런 타 임 스 택 을 갖 고 있 기 때 문 에 지 역 변 수 와 인 자 값 들 은 항 상 쓰 레 드 에 안 전 하 게 된다. 즉, 어 떤 쓰 레 드 에 서 다 른 쓰 레 드 의 데 이 터 구 조 에 접 근 할 수 있 는 방 법 은 애 초 에 없 는 것 이다. 이 런 까 닭 에 어 떠 한 힙 메 모 리 의 데 이 터( 정 적 필 드 를 포 함 한 객 체 의 모 든 필 드 )에 도 접 근 하 지않 는 메 소 드 는 동 기 화 를 해 주 지 않 아 도 쓰 레 드 에 안 전 하 게 작 동 하 게 된 다.

반응형

'IT이야기' 카테고리의 다른 글

패킷 검사와 DPI  (0) 2017.01.24
사물인터넷(IoT) 발전과 보안의 패러다임변화  (0) 2017.01.22
안드로이드 레이아웃  (0) 2017.01.11
switch, VLAN  (0) 2017.01.05
Routing Protocol  (0) 2016.12.28
Comments