Christmas Pikachu Thread란? (쓰레드 생성 및 활용법 1)
개발일지/자바

Thread란? (쓰레드 생성 및 활용법 1)

ZI_CO 2022. 9. 19.

porcess : 프로그램이 실행이 되면 OS로부터 메모리를 할당 받아 프로세스 상태가 됨
thread : 하나의 프로세스에는 하나 이상에 thread를 가지게 되고, 실제 작업을 수행하는
단위는 thread이다.

multi threading(멀티 쓰레딩) 이란 
여러 쓰레드가 동시에 수행되는 프로그래밍, 여러 작업이 동시에 실행되는 효과를 
만들어 낼 수 있다.
thread는 각각 자신만에 변수, 메서드 즉 작업 공간에 가진다.
즉 자기자신에 context를 가진다.  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!중요!!!!!!!!!!!!!!!!!!!!!!!!!!!

멀티 쓰래딩프로그램시 주의점
각 thread 사이에서 공유하는 자원이 있을 수 있다.
여러 쓰레드가 자원을 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는
race condition 발생 할 수 있다. (의도하지 않은 결과를 만들어 낼 수 있다.)

이렇게 여러 Thread가 공유하는 자원중 경쟁이 발생하는 부분을 critical section
이라고 한다. (임계 영역)
critical section은 문제가 발생할 수 있기 때문에 안정적인 프로그램을 처리하기 위해서는
동기화(일종에 순차적 수행) 처리를 해야 한다.  (만약 동기화 처리를 안하시 오류발생 가능성이 높다)

 

쓰레드를 생성하는 방법은 2가지가 있다.

첫번째 방법 : 1. Thread 클래스를 상속받는 방법

두번째 방법 : 2. Runnable 인터페이스를 구현하는 방법

 

여기서는 첫번째 방법을 활용해서 알아보자

 

쓰레드 활용

1. 일반클래스에서 Thread를 상속을 받아준다.

2. run메소드 안에서는 수행할 작업코드를 작성을해준다. 

 

 

1.상속 받아준 클래스를 초기화를 시켜 힙 메모리에 올려준다.

start()메소드는 run()메소드에서 수행된걸 실행시켜주는 메소드!!! 약속되어있는 메소드이다. 

 

댓글