DenPark
131
2019-03-20 11:07:15
6
516

자바 서버 비즈니스로직측에 thread.sleep() 사용해도 되나요


1밀리초 대기 후 특정 리퀘스트를 실행하려하는데 

서버측에 thread.sleep()을 걸어버리면 서버전체가 1밀리초 대기하게 되나요?

0
0
  • 답변 6

  • 두더지
    338
    2019-03-20 11:35:52
    sleep()을 호출한 스레드쪽만 일시정지되겠죠
    1
  • DenPark
    131
    2019-03-20 13:03:24

    혹시 스레드슬립이 아닌 좀 안전한방법은 없을까요? 당장 생각나는건 실행 후 os시각이랑 현재시각을 계속 반복비교해서 현재가 미래일 경우로 판단하는것 말곤 없는데...ㅜㅜ

    0
  • 초무쿤
    2k
    2019-03-20 14:34:37 작성 2019-03-20 14:35:02 수정됨

    저게 안전합니다만...(전체 대기가 아닙니다.해당 request만 대기)

    Thread.sleep(1000*1);


    1
  • DenPark
    131
    2019-03-20 18:08:37

    감사합니다 그냥 슬립쓰기로 했습니다.

    하드코딩은 플랜B로...ㅎ..

    0
  • 두더지
    338
    2019-03-20 19:29:09

    이제 봤네요 ㄷ wait() 와 notify() 를 사용하시면 어떨까요?

    그런데 무슨 작업하시는지 몰라서 sleep 이 최선일수도 아닐수도 있는거라 그냥 위의 방식은 어떤가

    제시만 드려요

    1
  • 초무쿤
    2k
    2019-03-20 22:51:51

    wait notify는 잘못하면 블럭될수 있어서 위험할듯 힙니다. 보통 그냥 sleep 써요.

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.