티스토리 뷰
주먹구구식으로 Spigot 플러그인을 제작할 때, 항상 Runnable 인터페이스를 잘 사용을 못해서, HashMap으로 스킬 쿨타임 들을 구현했던 기억이 난다. (뭐, 지금 생각해도 Map이 더 효율적인 방법이긴 하지만...ㅎ)
아무리 여러 블로그에 있는 포스팅들을 읽어봐도 Multi Threads 로 제 각각의 타이머를 만드는 개념이 이해가 잘 안 됐었다. 그래서 다루는 김에 간단히 1분을 세는 타이머를 구현한 방법을 적어볼까 한다.
○RunnableTest:
package com.choonham;
public class RunnableTest implements Runnable {
int count = 0;
int num = 0;
boolean timeOut = false;
public RunnableTest() {
// TODO Auto-generated constructor stub
}
public RunnableTest(int count) {
this.count = count;
}
@Override
public void run() {
while (!this.timeOut) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
this.num++;
if (this.count <= this.num) {
this.timeOut = true;
}
System.out.println(Thread.currentThread().getName() + " : " + num);
}
}
}
○MainClass:
package com.choonham;
public class MainClass {
public static void main(String[] args) {
System.out.println("주 스레드 시작");
RunnableTest r = new RunnableTest(60);
Thread t = new Thread(r);
t.start();
System.out.println("주 스레드 종료");
}
}
내가 오랜 시간 이해가 안된 개념이라 한번 적어는 봤는데.... 코드를 보면, 복잡할 것이 1도 없는 간단한 코드로 구현이 되었다.
역시 읽는 것 보다는 한번 적어보는 게 최고다.
반응형
'[JAVA] > JAVA' 카테고리의 다른 글
<Thread> Join() (0) | 2021.03.31 |
---|---|
<Thread> Priority 지정하기 (0) | 2021.03.31 |
<Thread> Thread 겉핥기 (0) | 2021.03.30 |
"웹 개발자 양성과정" 03.24 <Interface & Abstract Class> (0) | 2021.03.25 |
"웹 개발자 양성과정" 03.23 <상속, 접근 제한자 & 문제 풀이> (0) | 2021.03.25 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- 인천 구월동 맛집
- 파니노구스토
- 인천 구월동 이탈리안 맛집
- redux
- react
- redux-thunk
- 이탈리안 레스토랑
- Promise
- await
- Async
- 맛집
- javascript
- AsyncStorage
- react-native
- 정보보안기사 #실기 #정리
- Total
- Today
- Yesterday