我有点问题。我有一个Java应用程序,当它启动时,它需要制作六个或许七个线程,等待发生某种事件(即用户按下一个按钮)。下面是我如何制作这些线程的一个例子。问题是,我打开我的任务管理器只是为了看到我所有的四个cpu核心都处于100%(大约从20开始),只要我关闭我的应用程序,一切都恢复正常。我对多线程仍然很陌生,我知道我在这里犯了一些并发罪,但是我希望对如何纠正这种情况有所了解。让线程等待
new Thread (new Runnable() { public void run()
{
while (true)
if (doSomeFunction)
{
myFunction();
doSomeFunction = false;
}
} }).start();
// Somewhere else in the code
doSomeFunction = true;
我想或许等待,并通知将是正确的做法呢?
编辑:只是为了澄清,这无关与Swing组件供电。相反,这是基于脚本的事件,我不希望某些脚本函数阻塞,而是在完成后台任务时立即返回。
你的任务是干什么的?如果我是诚实的,产生线程根据一些UI触发事件简单地使它们活跃起来并不会有多大意义。一旦用户点击了一个按钮,你能不能产生线程来完成工作? – dannywartnaby 2010-09-28 16:38:28
多数民众赞成我最初是这样的,但我得到的理解,使我需要的线程和重用他们会更好。 – Dave 2010-09-28 16:50:18