java.lang.ThreadGroup.interrupt()%uA0方法中断该线程组中的所有线程。
声明
以下是java.lang.ThreadGroup.interrupt()方法的声明
public final void interrupt()
参数
-
NA
返回值
此方法不返回任何值。
异常
-
SecurityException%uA0--%uA0如果当前线程不允许访问该线程组或任何的线程的线程组中。
例子
下面的例子显示java.lang.ThreadGroup.interrupt()方法的使用。
package com.yiibai import java.lang.* class newThread extends Thread { boolean stop newThread(ThreadGroup group, String name) { super(group, name) stop = false } public void run() { System.out.println(Thread.currentThread().getName() + " starting.") try { for(int i = 1 i < 1000 i++) { Thread.sleep(500) synchronized(this) { if(stop) break } } } catch(Exception e) { System.out.print(Thread.currentThread().getName()) System.out.println(" interrupted.") } System.out.println(Thread.currentThread().getName() + " exiting.") } synchronized void stopFunc() { stop = true } } public class ThreadGroupDemo { public static void main(String args[]) throws Exception { ThreadGroup group = new ThreadGroup("new Group") newThread t1 = new newThread(group, "Thread1") newThread t2 = new newThread(group, "Thread2") // this will call run() method t1.start() t2.start() Thread.sleep(1000) // it shows current active threads in Thread Group System.out.println(group.activeCount() + " threads in thread group...") // returns the number of thread groups Thread th[] = new Thread[group.activeCount()] group.enumerate(th) for(Thread t : th) System.out.println(t.getName()) t1.stopFunc() Thread.sleep(1000) System.out.println(group.activeCount() + " threads in thread group...") // thread group interrupted group.interrupt() } }
让我们来编译和运行上面的程序,这将产生以下结果:
Thread1 starting. Thread2 starting. 2 threads in thread group... Thread1 Thread2 Thread1 exiting. 1 threads in thread group... Thread2 interrupted. Thread2 exiting.