목록Java (181)
충분히 쌓여가는
데몬 쓰레드 일반 쓰레드(non-daemon thread)의 작업을 돕는 보조적인 역할을 수행 일반 쓰레드가 모두 종료되면 자동적으로 종료된다 가비지 컬렉터, 자동저장, 화면 자동갱신 등에 사용된다 무한 루프와 조건문을 이용해서 실행 후 대기하다가 특정조건이 만족되면 작업을 수행하고 다시 대기하도록 작성한다 (무한 루프이더라도 일반 쓰레드가 모두 종료되면 자동적으로 종료된다) public void run() { while(true) { // 무한루프 Thread.sleep(3 * 1000); // 3초마다 } catch(InterruptedException e) {} // autoSave의 값이 true이면 autoSave()를 호출한다 if(autoSave) { autoSave(); } } 일반 쓰레드..
쓰레드의 우선순위(priortiy of thread) 작업의 중요도에 따라 쓰레드의 우선순위를 다르게 하여 특정 쓰레드가 더 많은 작업시간을 갖게 할 수 있다 희망사항일 뿐 OS안에서 꼭 우선순위대로 동작하지는 않는다 void setPriority(int newPriority) // 쓰레드의 우선순위를 지정한 값으로 변경한다 int getPriority() // 쓰레드의 우선순위를 반환한다 public static final int MAX_PRIORITY = 10 // 최대 우선순위 public static final int MAX_PRIORITY = 1 // 최소 우선순위 public static final int MAX_PRIORITY = 5 // 보통 우선순위 코드 실행할 때마다 결과는 다르게 나오..
싱글 쓰레드와 멀티 쓰레드 싱글 쓰레드 class ThreadTest { public static void main(String[] args) { for(int i = 0; i 0; i--) { System.out.println(i); try { sleep(1000); } catch(Exception e ) {} } } // run() } 10 9 2023-08-03 09:46:52.271 java[34291:117197] TSM AdjustCapsLockLEDForKeyTransitionHandling - _ISSetPhysicalKeyboardCapsLockLED Inhibit 8 7 6 5 4 3 입력하신 값은 12입니다. 2 1
main 쓰레드 main 메서드의 코드를 수행하는 쓰레드 public class Hello { public static void main(String[] args) { System.out.println("Hello, world"); } } 쓰레드는 '사용자 쓰레드'와 '데몬 쓰레드' 두 종류가 있다 실행 중인 사용자 쓰레드가 하나도 없을 때 프로그램은 종료된다 main 메서드가 종료되어도 run 메서드가 남아있기 때문에 프로그램은 종료되지 않는다 코드 try문 주석처리: 소요시간이 바로 찍힌다 class ThreadTest { static long startTime = 0; public static void main(String args[]) { ThreadEx11_1 th1 = new ThreadEx1..