SlideShare una empresa de Scribd logo
1 de 15
by Youn Heesung
실행
프로그램        프로세스
PROCESS         THREAD
   실행중인 프로그램   프로세스 내에서 실행되는
                흐름의 단위
   Cpu 사용율 을 극대화 및 대기시간 및 응답시간 최소화

   모든 프로세스는 하나 이상의 스레드 존재

   성능↑,구현 편리 , 작은투자->큰 효과

세미(Semi) 프로세스라 불리며, 주로 다수의 클라이언
트를 처리하는 서버/클라이언트 모델의 서버 프로그래밍
작업에서 주로 사용
SINGLE THREAD        MULTI THREAD
하나의 프로세스 ex)MS DOS   다수의 프로세스 ex)window
   숙제~
   .NET프레임워크 에서 System.Threading.Thread제공

   Ⅰ Thread의 인스턴스를 생성한다.

   Ⅱ Thread.Start() 을 호출하여 스레드 시작

   Ⅲ Thread.Join() 을 호출하여 끝날때까지 대기
 Unstarted: 객체 생성한 후 호출 전의 상태
 Running : 동작중인 상태
 Suspended:일시 중단 상태
 WaitSleepJoin : 스레드가 블록(Block)된 상태
Aborted:스레드가 취소된 상태
 Stopped:중지된 스레드의 상태
 Background:백그라운드로 동작되있는 상태
Thread.Interrupt() : thread에 인터럽트 호출
Thread.Join() : 중지된 thread 동기화
Thread.Resume() : suspend된 thread를 다시 활성화
Thread.Start() : thread 시작
Thread.Suspend() : thread를 suspend
 Thread.currentThread : 현재 실행중인 thread 객체 참조 반환
 Thread.IsAlive : 특정 thread의 실행 여부
 Thread.IsBackground : 백그라운드 thread 여부
 Thread.Name : 특정 thread의 이름 지정 반환
 Thread.ThreadState : thread 상태 반환
 Thread.Priority : thread 우선순위 설정 반환
 Thread.Abort() : thread 중지※warnning
 Thread.GetHashCode() : thread ID 반환
t1 스레드가 실행되면서
                       t1이 완전히 정지 할때까지 대기
메인 스레드 에서 분기됩니다.   Join()메소드가 반환하면 다시 하나로 합
                                쳐짐
Interrupt()
              Ssleep()


             Interrupt()




스레드가 WaitSleepJoin 상태일떄    스레드가 Running상태일 떄
Interrupt()를 호출하면 즉시 종료    Interrupt()를 호출해 두면 “나중애”
                           WaitSleepJoin상태가 됬을떄 종료
   Lock키워드
   Monitor클래스
Thread

Más contenido relacionado

La actualidad más candente

스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기June Yi
 
Adv sys prog_20123186_report1
Adv sys prog_20123186_report1Adv sys prog_20123186_report1
Adv sys prog_20123186_report1준석 김
 
AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)Jay Park
 
(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성Jay Park
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기June Yi
 
Mongo db in use(naver)
Mongo db in use(naver)Mongo db in use(naver)
Mongo db in use(naver)InBum Kim
 
스톰 접근 중
스톰 접근 중스톰 접근 중
스톰 접근 중June Yi
 
7가지 동시성 모델 - 6장. 순차 프로세스 통신
7가지 동시성 모델 - 6장. 순차 프로세스 통신7가지 동시성 모델 - 6장. 순차 프로세스 통신
7가지 동시성 모델 - 6장. 순차 프로세스 통신Hyunsoo Jung
 
데이터야 안전하게 놀아보자.V.1
데이터야 안전하게 놀아보자.V.1데이터야 안전하게 놀아보자.V.1
데이터야 안전하게 놀아보자.V.1Dongchan Sung
 
Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data SafelyDataya Nolja
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Yong Joon Moon
 
(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shellJay Park
 
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범) Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범) InBum Kim
 
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)InBum Kim
 
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차준혁 이
 
Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석Dong Chan Shin
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱Jong Wook Kim
 
R2서버정진욱
R2서버정진욱R2서버정진욱
R2서버정진욱jungjinwouk
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 MinGeun Park
 

La actualidad más candente (20)

스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
 
Adv sys prog_20123186_report1
Adv sys prog_20123186_report1Adv sys prog_20123186_report1
Adv sys prog_20123186_report1
 
AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)
 
(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
 
Mongo db in use(naver)
Mongo db in use(naver)Mongo db in use(naver)
Mongo db in use(naver)
 
스톰 접근 중
스톰 접근 중스톰 접근 중
스톰 접근 중
 
Node.js at OKJSP
Node.js at OKJSPNode.js at OKJSP
Node.js at OKJSP
 
7가지 동시성 모델 - 6장. 순차 프로세스 통신
7가지 동시성 모델 - 6장. 순차 프로세스 통신7가지 동시성 모델 - 6장. 순차 프로세스 통신
7가지 동시성 모델 - 6장. 순차 프로세스 통신
 
데이터야 안전하게 놀아보자.V.1
데이터야 안전하게 놀아보자.V.1데이터야 안전하게 놀아보자.V.1
데이터야 안전하게 놀아보자.V.1
 
Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data Safely
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706
 
(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell
 
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범) Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
 
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
 
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차
 
Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
R2서버정진욱
R2서버정진욱R2서버정진욱
R2서버정진욱
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 

Similar a Thread

[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성NAVER D2
 
android_thread
android_threadandroid_thread
android_threadhandfoot
 
Multithread design pattern
Multithread design patternMultithread design pattern
Multithread design pattern종빈 오
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver진상 문
 

Similar a Thread (6)

[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성
 
android_thread
android_threadandroid_thread
android_thread
 
Nodejs_chapter3
Nodejs_chapter3Nodejs_chapter3
Nodejs_chapter3
 
Multithread design pattern
Multithread design patternMultithread design pattern
Multithread design pattern
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver
 
Gcd ppt
Gcd pptGcd ppt
Gcd ppt
 

Más de Heesung Youn

위치기반서비스(Lbs) 공입
위치기반서비스(Lbs) 공입위치기반서비스(Lbs) 공입
위치기반서비스(Lbs) 공입Heesung Youn
 
가상현실(Vr)과 증강현실(ar)
가상현실(Vr)과 증강현실(ar)가상현실(Vr)과 증강현실(ar)
가상현실(Vr)과 증강현실(ar)Heesung Youn
 

Más de Heesung Youn (6)

위치기반서비스(Lbs) 공입
위치기반서비스(Lbs) 공입위치기반서비스(Lbs) 공입
위치기반서비스(Lbs) 공입
 
Sns 와 privacy
Sns 와 privacySns 와 privacy
Sns 와 privacy
 
가상현실(Vr)과 증강현실(ar)
가상현실(Vr)과 증강현실(ar)가상현실(Vr)과 증강현실(ar)
가상현실(Vr)과 증강현실(ar)
 
클라우드
클라우드클라우드
클라우드
 
태블릿 Pc
태블릿 Pc태블릿 Pc
태블릿 Pc
 
Sns 와 privacy
Sns 와 privacySns 와 privacy
Sns 와 privacy
 

Thread

  • 2. 실행 프로그램 프로세스
  • 3. PROCESS THREAD  실행중인 프로그램 프로세스 내에서 실행되는 흐름의 단위
  • 4. Cpu 사용율 을 극대화 및 대기시간 및 응답시간 최소화  모든 프로세스는 하나 이상의 스레드 존재  성능↑,구현 편리 , 작은투자->큰 효과 세미(Semi) 프로세스라 불리며, 주로 다수의 클라이언 트를 처리하는 서버/클라이언트 모델의 서버 프로그래밍 작업에서 주로 사용
  • 5. SINGLE THREAD MULTI THREAD 하나의 프로세스 ex)MS DOS 다수의 프로세스 ex)window
  • 6.
  • 7. 숙제~
  • 8. .NET프레임워크 에서 System.Threading.Thread제공  Ⅰ Thread의 인스턴스를 생성한다.  Ⅱ Thread.Start() 을 호출하여 스레드 시작  Ⅲ Thread.Join() 을 호출하여 끝날때까지 대기
  • 9.  Unstarted: 객체 생성한 후 호출 전의 상태  Running : 동작중인 상태  Suspended:일시 중단 상태  WaitSleepJoin : 스레드가 블록(Block)된 상태 Aborted:스레드가 취소된 상태  Stopped:중지된 스레드의 상태  Background:백그라운드로 동작되있는 상태
  • 10. Thread.Interrupt() : thread에 인터럽트 호출 Thread.Join() : 중지된 thread 동기화 Thread.Resume() : suspend된 thread를 다시 활성화 Thread.Start() : thread 시작 Thread.Suspend() : thread를 suspend Thread.currentThread : 현재 실행중인 thread 객체 참조 반환 Thread.IsAlive : 특정 thread의 실행 여부 Thread.IsBackground : 백그라운드 thread 여부 Thread.Name : 특정 thread의 이름 지정 반환 Thread.ThreadState : thread 상태 반환 Thread.Priority : thread 우선순위 설정 반환 Thread.Abort() : thread 중지※warnning Thread.GetHashCode() : thread ID 반환
  • 11. t1 스레드가 실행되면서 t1이 완전히 정지 할때까지 대기 메인 스레드 에서 분기됩니다. Join()메소드가 반환하면 다시 하나로 합 쳐짐
  • 12.
  • 13. Interrupt() Ssleep() Interrupt() 스레드가 WaitSleepJoin 상태일떄 스레드가 Running상태일 떄 Interrupt()를 호출하면 즉시 종료 Interrupt()를 호출해 두면 “나중애” WaitSleepJoin상태가 됬을떄 종료
  • 14. Lock키워드  Monitor클래스