티스토리 뷰
반응형
package day19;
//Thread - sleep()
public class ThreadExam07 {
public static void main(String[] args) {
Test01 t1 = new Test01();
Test02 t2 = new Test02();
t1.start();
t2.start();
}
}
class Test01 extends Thread{
@Override
public void run() {
for(int i =0; i<3; i++) {
System.out.println("%");
}
}
}
class Test02 extends Thread{
@Override
public void run() {
for(int i =0; i<3; i++) {
System.out.println("&");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package day19;
public class Thread08 {
public static void main(String[] args) {
Test03 t3 = new Test03();
t3.start();
System.out.println("작업을 시작하겠습니다.");
t3.interrupt();
System.out.println("취소여부 :"+t3.isInterrupted());
}
}
class Test03 extends Thread{
@Override
public void run() {
int i =10;
while(i!=0 && !isInterrupted()) {
System.out.println(i--);
for(long x=0; x<1500000000L;x++);
}
System.out.println("작업이 취소되었습니다.");
}
}
※개념정리
쓰레드가 어려운 이유는 동기화와 스케줄링이다. 이러한 스케줄링을 잘하기 위해선 실행제어를 알아야 한다.
*sleep(long millis) - 일정시간동안 쓰레드를 멈추게 한다. (ThreadExam07)
CPU의 시간을 다른 스레드에게 넘겨주는 효율적인 방법, 다른 스레드와 보조를 맞추는 용도
*join() - 다른 쓰레드의 작업을 기다린다.
*yeid() - 다른 쓰레드에게 양보
주어진 시간이 1초일 경우 0.5초는 사용하고 나머지는 다음 쓰레드에게 양보
yeid와 interrupt를 적절히 사용할 경우 프로그램의 응답성을 높이고 효율적인 실행 가능
*interrupt() 와 interrupted() - 쓰레드의 작업을 취소한다. (Thread08)
interrupt() 취소, interrupted() 취소여부
*suspend - 멈춤/ resume - 실행대기 / stop - 종료
이들은 교착상태를 쉽게 일으키기 때문에 사용을 권장하지 않음 - 이런것을 Deprecated
<상태>
NEW : 생성되었지만 아직 start( )가 안된상황
RUNNABLE : 실행(가능한)
BLOCKED : 일시정지(동기화블록)
WAITING / TIMED WAITING : 일시정지
TERMINATED : 종료
'Java > 개념' 카테고리의 다른 글
JAVA 동기화 (0) | 2020.07.14 |
---|---|
JAVA 쓰레드의 우선순위 (0) | 2020.07.14 |
JAVA 싱글쓰레드와 멀티쓰레드의 차이점 (0) | 2020.07.14 |
JAVA Thread(쓰레드)의 개념 및 구현방법 (0) | 2020.07.14 |
JAVA/HashMap과LinkedHashMap과TreeMap의 비교 (0) | 2020.05.30 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Process #쓰레드
- NEW #BLOCKED #TERMINATED #WAITING #TIMED WAITING #RUNNABLE
- JAVA #CollectionFramework #Stack #Queue #LinkedList #PriorityQueue #LIFO #FIFO
- 백준 #JAVA #1000번 #Scanner #Buffered #입력함수
- 정보처리기사 #2020년 개정 #XP #익스트림프로그래밍 #릴리즈 #이터레이션 #방법론
- 정보처리기사 #2020년개정 #UML #다이어그램 #정적 #동적 #구조적 #행위 #실체화 #구조 #관계 #의존 #연관 #집합 #포함 #일반화
- 백준 #2557 #HelloWorld! #JAVA
- JAVA #CollectionFramework #Set #Treeset
- JAVA #Thread #쓰레드 #자바 #우선순위 #setPriority #getPriority
- JAVA #CollectionFramework #Set #HashSet
- 백준 #Java #10926 #??!
- 자바 #개념 #변수 #자료형
- JAVA #Map #HashMap #TreeMap #LinkedHashMap
- JAVA #Thread #실행제어 #상태제어 #스케줄링 #sleep #join #stop #resume #suspend #yeid #interrupt #interrupred #Deprecated
- 10998 #A*B #AxB
- JAVA #CollectionFramework #Set #HashESet #TreeSet #LinkedHashSet
- JAVA #Thread #쓰레드 #자바 #sychronized #wait #notify #notifyAll #lock #잠금 #동기화 #임계영역
- 포토시그니처 #신라면 #시위 #휴가
- 백준 #1001번 #A-B
- 정보처리기사 #2020년개정 #요구사항확인 #1과목 #SW생명주기 #폭포수 #SW설계 #나선형 #애자일 #프로포타입
- 정보처리기사 #2020개정 #SW설계 #현행시스템
- JAVA #CollectionFramework #List #ArrayList #LinkedList #for-each #foreach #iterator #Iterator #반복자
- JAVA #HashMpa #Map #Hashtable #Hashing
- JAVA #Thread #Runnable
- key #value
- JAVA #Thread #쓰레드 #싱글쓰레드 #멀티쓰레드 #자바
- 육회물회 #금복주류 #소메랑곱창 #금정역 #나는솔로 #맥주
- 정보처리기사 #2020년개정 #요구사항 분석기법 #요구사항 확인기법
- 정보처리기사 #가용성 #2020년개정 #오픈소스 #애플리케이션 #WAS #비즈니스 #DBMS
- 정보처리기사 #2020년 개정 #SW설계 #요구사항 확인 #애자일 #스크럼
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함