본문 바로가기
Back-end/Java

[JAVA] Thread

by JiGyeong 2016. 6. 10.

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