반응형
Task : 하나의 작업단위
Process : 여러 Task가 모인것
Thread : 여러 Process가 모인것
각각 하나의 자원을 먹는다.
* 병렬 처리 프로그래밍 : 한가지 일을 동시에 처리한다
병렬 처리를 할떈 Thread로 부터 안전한
HashMap대신 HashTable을 쓴다
List대신 Vector를 쓴다.
Synchronized와 volatile를 쓴다.
count라는 변수를 세 Thread가 참조할 경우 다른 Thread에서 값이 변했을떄
즉시 알려줄 수 있는 기능이다.
*발생하는 문제
Thread는 돌아가는데 순서가 없어서 에러나면 찾을 수 없다
다시 실행시켰을 경우 다른 순서로 돌아갈 수 있다.
순차실행을 보장하기 힘들다.
Thread 쓰는 방법
Thread를 만드는 방법은 2가지가 있다.
첫번째 방법 :
sleep을 줘서 잠깐 쉬는동안 다른 Thread가 진행될 수 있게 도와준다.
순서없이 Thread 3개가 진행된다.
두번째 방법 :
익명 클래스를 이용하여 Thread를 생성한다.
3개의 Thread는 main의 count를 가져와서 각각 +1씩 진행한다.
순서없이
결과 화면
반응형
'Back-end > Java' 카테고리의 다른 글
[디자인 패턴] Bridge Pattern (0) | 2019.08.21 |
---|---|
델리게이션 구조란? (0) | 2019.06.10 |
[Java] SingleTon 기본 static (0) | 2016.04.28 |
[JAVA] 클래스 상속 interface, implements (0) | 2016.04.11 |
[JAVA] Interface (인터페이스) (0) | 2016.04.11 |