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()메소드에서 수행된걸 실행시켜주는 메소드!!! 약속되어있는 메소드이다.
'개발일지 > 자바' 카테고리의 다른 글
Thread.sleep 활용 (0) | 2022.09.19 |
---|---|
Thread란? (쓰레드 생성 및 활용법 2) (0) | 2022.09.19 |
이미지 움직이기, 이동범위 제한(KeyAdapter, Jpanel 활용) - 2 (0) | 2022.09.17 |
이미지 움직이기, 이동범위 제한(keyListener, Jpanel 활용) - 1 (0) | 2022.09.17 |
마우스 리스너 (어댑터 활용) (0) | 2022.09.17 |
댓글