怎么销毁java中的线程

Python011

怎么销毁java中的线程,第1张

thread可以用destroy方法销毁,但它不保证资源被释放,所以只能用在无资源的情况下。一般都自行控制代码逻辑让run()方法正常执行完,常用的方法包括可以被打断(在代码里检测interrupted())、检测状态标识退出循环等。

你是用Java自带的ExecutorService这个线程池么?如果是的话,ExecutorService自身会管理池中的线程,不需外界手动干预。

如果是自己写的话,必须在线程池内的线程加入退出判定,要不然的话是没法从线程外结束线程的。(你也不应该这样做,因为这样会导致验证的资源泄漏)

把待处理的对象放到一个阻塞队列里。往队列里填东西时 用new Thread(){ run(){queue.put()}},

在处理它的线程run中, 还是那个queue, queue.take()

put和take是一对可阻塞线程的方法。 BlockingQueue在初始化时是需要定个大小的,就是说这个队列最多有多少个东西。put在入里填东西时,如果queue满了,它会阻塞,直到有地方可填。所以你不能直接put,要new一个动态的线程出来,。 那处理它的方法中从里面往出take,如果没有东西可take,它也会阻塞,直到有东西它就往下执行。这样你就不用怕while(true)了,因为没东西可执行时,线程会在take处阻塞线程继续执行。

虽然过一年半了,但是我百度东西时摆到这儿了,就试着也答答。