전편에는 Thread에 대한 개요를 공부했었고 이번 편에서는 Java를 통해서 Thread를 공부해나가 볼까 합니다. 공부 중이기 때문에 틀린 부분있으면 지적 꼭 좀 부탁드립니다. 이 글 또한 도움이 됐으면 좋겠습니다😀
제가 실습한 코드는 혹시 몰라 올려둡니다. https://github.com/helloJosh/nhn-homework-thread-study
public class RunnableCounter implements Runnable{
String name;
int count;
int maxCount;
public RunnableCounter(String name, int maxCount){
// 생성자 중략
}
@Override
public void run(){
while(count < maxCount){
try{
Thread.sleep(1000);
count++;
System.out.println(name +":"+count);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
Counter Class 구현 코드
public static void main(String[] args) {
LocalTime now = LocalTime.now();
RunnableCounter counter1 = new RunnableCounter("counter1", 10);
RunnableCounter counter2 = new RunnableCounter("counter2", 10);
System.out.println("start :" + now);
counter1.run();
counter2.run();
System.out.println("end :" + now);
}
public static void main(String[] args) {
LocalTime now = LocalTime.now();
RunnableCounter counter1 = new RunnableCounter("counter1", 10);
RunnableCounter counter2 = new RunnableCounter("counter2", 10);
Thread thread1 = new Thread(counter1);
Thread thread2 = new Thread(counter2);
System.out.println("start :" + now);
thread1.start();
thread2.start();
System.out.println("end :" + now);
}
public static void main(String[] args) {
LocalTime now = LocalTime.now();
RunnableCounter counter1 = new RunnableCounter("counter1", 10);
RunnableCounter counter2 = new RunnableCounter("counter2", 10);
Thread thread1 = new Thread(counter1);
Thread thread2 = new Thread(counter2);
System.out.println("start :" + now);
thread1.start();
thread2.start();
while(thread1.isAlive() || thread2.isAlive())
;
System.out.println("end :" + now);
}