본문 바로가기

Java/본격 Java 스레드

(4)
[Java] synchronized thread 실습 신문 기자와 독자가 존재하고 기자가 기사를 쓰면 독자가 신문기사를 읽을 수 있게 한다. 각각 클래스에 thread를 상속받아 기사를 받자마자 읽을 수 있게 한다. . . class NewsPaper{ String todayNews; public void setTodayNews(String news){ todayNews = news; } public String getTodayNews() { return todayNews; } } class NewsWriter extends Thread{ NewsPaper paper; public NewsWriter(NewsPaper paper){ this.paper = paper; } public void run(){ paper.setTodayNews("오늘 덥다.");..
[Java] 우선순위 스레드(Priority Thread) 이중 스레드에서 우선순위를 정해서 실행할 수 있을까? . . class MessageThread extends Thread{ String message; public MessageThread(String str, int prio){ message = str; setPriority(prio); // 받아온 우선 순위를 현 인스턴스(스레드)에 지정 } public void run(){ for (int i = 0 ; i < 10 ; i++ ){ System.out.println(message + "(" + getPriority() + ")"); // getPriority() : 현재 동작중인 스레드의 우선순위 리턴 } } } class PriorityTest{ public static void main(Str..
[Java] Runnable 스레드(Runnable thread) 스레드의 라이프 사이클 - new -> runnable -> blocked -> dead new : new 키워드로 Thread클래스를 상속받은 스레드 인스턴스 생성 runnable : start()메소드가 실행되어 run()메소드를 호출하고 실행하는 상태 blocked : 실행중인 스레드가 sleep()이나 join()메소드를 호출하거나, CPU의 할당이 필요치 않은 입출력 연산을 하게 되면, CPU를 다른 스레드에 넘기고 본인은 blocked 상태가 되며, blocked상태가 끝나면 다시 runnable상태가 됩니다. dead : run()메소드의 실행이 종료되면 dead상태가 됩니다. . . class Sum{ int num; public Sum(){ num = 0; } public void add..
[Java] 스레드(Thread) 스레드(thread) - java.lang 패키지에 있는 클래스 - 프로그램의 실행흐름을 의미하는 것으로 일반적으로 main()메소드를 시작으로 하나의 흐름으로 진행됩니다. - 두 개이상의 흐름을 작업하면 멀티스레드라 하여 각 실행 흐름을 제어합니다. . . 예제 class ShowThread extends Thread{ //Thread클래스를 상속받음으로써 ShowThread클래스는 하나의 쓰레드로 동작할 수 있음 String threadName; public ShowThread(String name){ threadName = name; } public void run(){ // Thread클래스의 메소드로 오버라이딩하여 작업해야 함 // 실제 현 스레드에서 해야 할 작업을 구현해 놓는 메소드 // s..