How to kill a java thread?

前端 未结 8 1969
一个人的身影
一个人的身影 2020-12-11 08:26

I google the solution for killing a java thread. And there exists two solutions:

  1. set a flag
  2. using Thread.interrupt

But both of them ar

8条回答
  •  [愿得一人]
    2020-12-11 09:14

    Since Thread.stop() is (rightly) deprecated, generally this is accomplished by setting a flag to true. Something like this:

    Calling Class:

    ...
    workListExecutor.stop()
    ...
    

    WorkListExecutor.class:

    boolean running = true;
    
    void stop(){
      running = false;
    }
    
    void run(){
      while (running) {
        ... do my stuff ...
      }
    }
    

    This is assuming your thread has some kind of main loop (usually the case). If the code in your loop is too big, you can periodically check if running is still true, and bail out if it's not.

    This has the advantage that you can still clean up when you're done. The thread will be killed automatically when your run method finishes.

提交回复
热议问题