본문 바로가기
컴퓨터과학[3-1]/[3-1]J A V A

[JAVA] Multi Thread Programming

by boolean 2016. 2. 25.
728x90

[JAVA] Multi Thread Programming

용어정리



Process : 프로세스
컴퓨터 상에서 실행되고 있는 프로그램을 말한다. 메모리에 적재된 상태로 실행되며 CPU 스케쥴링의 대상이 되는 태스크로 볼 수 있다. 운영체제의 중요 기능의 하나가 프로세스를 관리하는 일이다. 
Thread : 스레드
프로세스 내에서 실행되는 소규모 실행 단위이다. 하나의 main 스레드만을 이용하는 프로그램을 단일 스레드 프로그램, 프로세스 내의 자원을 공유하면서 여러 스레드를 이용하는 것을 멀티 스레드 프로그램이라 한다. 
Thread Interference : 스레드 간 간섭
멀티 스레드를 이용한 프로그램에서 여러 스레드가 동일한 자원을 공유하면서 동시에 공유 자원에 접근할 때 생길 수 있는 데이터의 일관성 문제를 말한다. 
Thread Synchronized : 스레드 동기화
멀티 스레드 프로그램에서 한 순간에 하나의
스레드만이 공유 자원에 접근하게 함으로써
데이터의 일관성을 유지하는 기법을 말한다.  

학습정리



  1. 스레드는 프로세스 내부에서 생성되는 소규모의 실행 단위이다.
  2. 멀티 스레드 프로그래밍이란 하나의 프로세스에서 여러 개의 스레드가 동시에 실행되게 하는 것을 의미한다.
  3. 스레드 생성을 위해서 Thread 클래스를 상속하는 클래스나 Runnable 인터페이스를 구현한 클래스를 만들고
    public void run()을 정의한다.
  4. 스레드는 생성되고 소멸하기까지 Startable, Runnable, Running, Not Running 등의 상태를 가진다.
  5. 스레드 관리 메소드로 start(), join(), interrupt()가 있으며, 또한 static 메소드인 yield()와 sleep()이 Thread 클래스에 정의되어 있다. 또한 Object 클래스에 정의된 notify()와 wait()가 있다.
  6. 스레드 동기화는 서로 다른 스레드들이 공유 객체에 접근할 때, 일관성을 유지하도록 한 순간에 오직 하나의 스레드만이 공유 객체에 접근하도록 하는 것이다.
  7. synchronized 블록 또는 synchronized 메소드는 한 번에 한 스레드만이 공유 자원에 접근하도록 상호 배제를
    보장해 준다


댓글