동기화 영역에서 사용해야 의미가 있음wait()메서드: 동기화 영역에서 락을 풀고 Wait-Set영역(공유객체별 존재)으로 이동notify() 또는 notifyAll() 메서드: Wait-Set영역에 있는 쓰레드를 깨워서 run(): notify()는 하나, notif
Vector,Hashtable등 예전부터 존재하던 Collection 클래스들은내부에 동기화처리가 되어 있다.그런데, 최근 새로 구성된 Collection들은 동기화 처리가 되어있지 않다.그래서 Collection들을 사용하려면 동기화 처리를 한 후에 사용T18_Syn
Thread 동기화: 여러개의 Thread가 공유하여 작업 진행 ->: 문제가 발생할 여지가 있음 -> 임계 영역: 이 영역을 동기화 처리 문제발생 방지: 과도한 동기화는 프로그램 성능 저하 -> 필요한 영역만 선별적으로 사용T17_LockAccountTest되도록이면
은행의 입출금을 쓰레드로 처리하는 예제 T16_SyncAccountTest공통으로 사용하는 데이터 클래스 SyncAccount의 객체 sAcc 생성객체 sAcc를 쓰레드 BankThread에 넘겨준다.은행의 입출금을 관리하는 클래스 정의(공유 객체)생성자, get()
T15_SyncThreadTest(1) 공통으로 사용할 데이터 클래스 ShareObject의 객체 sObj 생성(2) 쓰레드 WorkerThread 에 공통으로 사용할 객체 sObj 넘겨줌 방법1> 메서드 자체에서 동기화 처리하기: public synchronized
동기화 (Synchronization): 공유자원(객체)를 상대로 순서대로 작업이 이루어지도록 처리하는 방법을 의미한다. 프로세스 내 자원(객체)를 여러개의 스레드가 공유하여 작업을 진행하다 보면 예기치 못한 결과를 초래문제가 발생할 여지가 있을 법한 임계영역에 동기화
Thread의 stop()메서드를 호출하면 쓰레드가 바로 멈춘다. => 이때 사용하던 자원을 정리하지 못하고 바로 프로그램이 종료 => 나중에 실행되는 프로그램에 영향을 줄 수 있음. => 그래서 현재 stop()메서드는 비추천(deprecated)아래 예제 이후에 T
Thread => 실질적 작업단위 (Single Thread & Multi Thread)1) 현재 실행 대기중인 동등한 우선순위 이상의 다른 스레드에게 실행기회를 제공한다.(양보)2) 현재 실행중인 스레드의 상태를 Runnable상태로 바꾼다. : Waiting
(1) NEW : 스레드가 생성되고 아직 start()가 호출되지 않은 상태(2) RUNNABLE : 실행 중 또는 실행 가능한 상태(3) BLOCKE : 동기화 블럭에 의해서 일시정지된 상태(lock이 풀릴때까지 기다리는 상태)(4) WATTING, TIMED_WAI
Thread 클래스에는 아래와 같이 우선순위들을 가지고 있다.class Thread implements Runnable { public final static int MIN_PRIORITY = 1; //최소 우선순위 public final static int N
카운트다운 하는 for문 -> 사용자가 10초동안 입력을 안하면 프로그램을 끝내고 싶은데 쓰레드 1개(단일 쓰레드)로는 불가능하다.T05_ThreadTest 단일쓰레드로 하지못한 카운트다운을 할 수 있다.public static boolean inputcheck
: Thread가 하나뿐인 프로그램을 말한다.: Thread가 2개 이상인 프로그램을 의미한다.Thread Ctrl+F2 누르면 정의class Thread implements Runnable {}Runnable Ctrl+F2 누르면 정의@FunctionalInterfa
: 프로세스란 운영체제에서 실행 중인 하나의 프로그램을 의미한다.: 멀티 프로세스(Multi Process)란 두 개 이상의 프로세스가 실행되는 것을 의미함.: 멀티 태스키(Multi Tasking)이란 두 개 이상의 프로세스를 실행하여 일을 처리하는 것을 의미: 스레