Java Thread Sleep


개발을 하다보면 중간중간 잠깐 쉬어야 하는 경우가 발생합니다. 예를 들어, 많은 서버의 경우 시간당 요청할 수 있는 쿼리의 숫자를 제한하는 경우가 많이 있습니다. 무제한 제공을 할 경우 DDOS 공격에 취약해지고, 소수의 사용자가 엄청난 쿼리를 날리게 될 경우 서버가 다운 될 가능성이 있기 때문이지요.

따라서 Java를 이용해서 프로그래밍을 할 경우 중간중간 쉬었다 해야 할 경우가 있습니다. 이럴때 Thread Sleep을 이용하면 됩니다.

예제를 살펴보시면,

public static void main(String[] args)
{
    try
    {
          for (int i = 1; i <= 60; i++)
         {
             System.out.println(i);
             Thread.sleep(1000);
          }
     }
     catch (Exception e)
     {
        e.printStackTrace();
    }
}


위 소스코드를 실행해보면 1부터 60까지의 숫자를 초당 1씩 증가해서 보여주는 것을 볼 수 있습니다. 핵심은 Thread.sleep() 메소드 입니다. 이 메소드의 파라미터는 밀리세컨드로 얼마나 스레드가 슬립 상태로 있을 것인가 입니다. 1000밀리 세컨드는 1초이기 때문에 1초간 쉬었다가 보여주고, 1초간 쉬었다가 보여주는 식입니다.

위 예제를 적재적소에 응용하시기 바랍니다. ^^

StringTokenizer를 이용한 간단한 예제


자바를 이용해서 문자열 처리를 할 때, 유용하게 쓰이는 클래스가 바로 StringTokenizer 클래스입니다. java.util 에 들어 있는 StringTokenizer 를 이용하면 문자열을 delimeters 라고 하는 기준 문자( 혹은 문자열 )를 이용해서 여러개의 토큰으로 잘라 낼 수 있습니다.

백문이 불여일견 예제 소스를 하나 만들어보겠습니다.

import java.util.StringTokenizer;


public class test
{
    public static void main(String args[])
    {
        String temp = "대한민국*미국*영국";
       
        StringTokenizer st = new StringTokenizer(temp,"*");
       
        String token = "";
        while(st.hasMoreElements())
        {
            token = st.nextToken();
           
            System.out.println(token);
        }
    }
}


이 소스를 돌려보면 다음과 같이 나옵니다.


StringTokenizer 결과

StringTokenizer 결과



StringTokenizer 예제 소스에 주석을 달아보겠습니다.


StringTokenizer 주석

StringTokenizer 주석



StringTokenizer를 사용할 때, 간단하지만 가장 많이 쓰이는 패턴입니다. 복잡한 문자열이라도 토큰으로 나눌 경우 위와 같은 패턴을 쓰게 됩니다.



<StringTokenizer 클래스를 사용한 간단한 예제> 는 개발자 꼬마낙타가 정리하는 글입니다. 질문이 있으신 분은 댓글을 달아주세요. 같이 고민해봅시다. ㅋㅋ

+ Recent posts