Stop the thread by thread group experience

package com.dq;

public class ThreadTest {
	
	public static class Task implements Runnable
	{
		@Override
		public void run() 
		{
			Thread currentThread = Thread.currentThread();
			while (true) 
			{
				if (currentThread.isInterrupted()) 
				{
					if (currentThread.getThreadGroup().getName().equals("thread-group-1")) 
					{
						System.out.println("thread-group-1线程组中的" + currentThread.getName() + "线程退出");
					}
					else
					{
						System.out.println("thread-group-2线程组中的" + currentThread.getName() + "线程退出");
					}
					break;
				}
				else
				{
					System.out.println("线程进行中:" + System.nanoTime());
				}	
			}
		}
	}
	
	public static void main(String[] args) throws InterruptedException 
	{
		ThreadGroup group1 = new ThreadGroup("thread-group-1");
		ThreadGroup group2 = new ThreadGroup("thread-group-2");
		Task task = new Task();
		Thread thread1 = new Thread(group1, task, "thread-1-1");
		Thread thread2 = new Thread(group1, task, "thread-1-2");
		Thread thread3 = new Thread(group2, task, "thread-2-1");
		Thread thread4 = new Thread(group2, task, "thread-2-2");
		thread1.start();
		thread2.start();
		thread3.start();
		thread4.start();
		Thread.sleep(10);
		group1.interrupt();	// 这样就可以将线程组中的所有线程的中断标志设置为true,很方便
		group2.interrupt();
	}
}

Published 236 original articles · won praise 10 · views 10000 +

Guess you like

Origin blog.csdn.net/gunsmoke/article/details/104740647