Java并发学习笔记(5)停止基于线程的服务

基于线程的服务,典型的就属于线程池了.这些服务通常的一点是,它们存在的时间通常比创建它们的方法存在的时间更久一些.

程序拥有服务,服务拥有线程,但是程序并不一定拥有线程,因此程序不应该试图直接停止服务中的线程.所以服务应该提供控制其内部线程的生命周期的方法.(如同线程池ExecutorService的shutdown/shudownNow),不要发布线程给程序.让程序多管闲事.

对于线程持有的服务,只要服务的存在时间大于创建线程的方法存在时间,那么就应该提供生卫护命周期的方法.

Ps:小白话:所谓的拥有线程.指的是在其服务内启动一个线程.把服务看成一个对象,内部组件就是组合.有线程的启动.你就拥有线程的Thread\FutureTask....就可以控制他们的生命周期.然后使用方法像程序提供这些线程的生命周期控制,不要将线程发布出去..(可以在内部控制一个线程池帮你管理你所启动的线程)

你可能感兴趣的:(java,thread)