重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java中线程分为两种类型:用户线程和守护(服务)线程。通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程;不设置则默认为用户线程。
创新互联不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的网站设计、做网站质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式全网整合营销推广需求,让再小的品牌网站制作也能产生价值!结束单线程用 Thread.interrupt() 方法,多线程结束则需要设置守护线程。当不存在用户线程时,守护线程就会全部终结(可以理解为:守护线程是服务线程,用户线程是被服务线程,用户线程(被服务线程)全都没有了,服务线程便没有存在意义而自动终结)
例子:
class StopThread implements Runnable { public void run() { // 构造函数,实例化时默认执行 while (true) { // 永真循环,用于检测该守护线程会不会自动结束 System.out.println(Thread.currentThread().getName() + "....run"); } } } public class threadTest { public static void main(String[] args) { StopThread st = new StopThread(); Thread t1 = new Thread(st); // 创建新线程 Thread t2 = new Thread(st); t1.setDaemon(true); // 设置成守护(服务)线程,当用户线程全挂时,所有守护线程也跟着挂 t2.setDaemon(true); t1.start(); // 线程开始 t2.start(); int num = 0; while (true) { if (num++ == 10) { break; } System.out.println(Thread.currentThread().getName() + "......." + num); } System.out.println("over"); } }