티스토리 뷰

2022/java 2

day16[Thread,Singleton]

yanii 2022. 8. 19. 16:19


쓰레드가 동시에 있으면 제어할 수 없음.
하나하나의 쓰레드가 들어와야 제어권이 부여됨
멀티 쓰레드로 구현했는데 여러개가 있으면
오류 생김
>>하나씩 접근해야 해. 동기화!
내가 쓰레드를 제어하기 위해서 사용
wait을 쓰려면 동기화를 해야 함.

패턴
설계할 때 쓰는 거구나~
내가 쓰는 코드는 다른 사람도 쓰니까~
약속한 설계 방식이구나~

싱글톤패턴 
무조건 객체는 단 한 개, 그걸 돌려서 쓰자
다른 곳에서 생성자를 만들지 못하게 해줌.
객체는 무조건 한 개만 만들고 돌려 쓴다.

쓰레드가 멈췄을 때(join,wait,sleep) 쓰레드를 멈출 수 있다
멈추고 싶을 때 오류 걸려서 catch로 탈출한다.

--------------------------------------------
Thread 종료 방법
1.필드에 boolean 타입의 변수를 선언하고 run()안에 있는 반복문에 해당 변수가 true일 경우 break하도록 설계한다.
2.sleep() 또는 wait(), join() 등의 메소드를 통해 쓰레드 일시정지 상태일 경우
   Thread객체.interrupt()를 사용하여 InterruptedException을 발생시킨다.
  이 때 일시정지 시킨 메소드 부분의 catch를 통해 예외를 잡아주고 원하는 문장을 작성하면 된다.
3.쓰레드를 일시정지하는 코드가 없을 경우 Thread.interrupted()의 상태를 확인한다.
  Thread객체.interrup() 사용 시 Thread.interrupted()의 상태는 true로 변경된다.
4.모든 쓰레드 종료>프로세스 종료
  System.exit(0)를 사용하면 전체 쓰레드 종료(프로세스 종료)


(패키지 : lamp)


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함