Developer Factory

스레드(Thread) 본문

Developer/Jsp

스레드(Thread)

Jeremy.Park 2014. 6. 24. 09:47
Thread
-> 독립적으로 실행하는 명령어 블럭
     OS에서 Cpu 사용권 받음

                      실행중인 Application (메모리에 명령어가 로딩된 상태)
                       ↓
                 [Process]      <-     
[CPU]   ->  [Process]      <-     [ HDD, MS Word, HWP, PPT ] <- application
                 [Process]      <-    
[                O S               ]



*CPU 배정 방법
(CPU scheduling)

1). Round-Robin 방식
-> 일정시간에 따라 순환
-> Windows OS

2) Priorify 방식
(+ Ag.hg 기법)
-> Unix 계열


* 동시 실행
-> 전체 명령어에서 일부 작업은 분리하여 독립적으로 실행

(해결책)
1) 예전 방식 => 복제(프로세스 복제)
[ChatClient]-[메모리]  (heap,stack...) 
                 ->    [ChatClient]-[메모리]
                 fork() : 메모리 복제 => 자원 낭비가 심하다.

2) 현재 방식 => 코드 분리
[ChatClient] ---> (일부코드분리)
     ↓                         ↓ 
[메모리]<-------------공유 (자원 낭비 줄임)
(heap, stack...)



* 스레드 생명 주기
                                                         timeout, notify(), notifyAll()
               start()                               <----- sleep()
스레드 ------------> Runnable(스레드실행) ------------> Not Runnable
                              -> cpu를 받을 수 있는 상태       -> cup를 받지 않는 상태
                                    (racing)
                                        ↓
                                     X ↓ run() 리턴
                                     ↑ ↓
                              "Thread Dead"

OS
-> 다른 (프로세스)스레드 에게 CPU를 넘기기 전에 현재 프로세스의 실행 상태 보관
-> 프로세스 실행전에 -> 이전 상태 읽기

* Context Switching






'Developer > Jsp' 카테고리의 다른 글

ServletContext란  (0) 2014.06.24
동기화 (synchronization)  (0) 2014.06.24
InputStream => read(), read(byte[])  (0) 2014.06.24
File upload를 위한 라이브러리  (0) 2014.06.24
JSP 전용(태그) 엘리먼트  (0) 2014.06.24