- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要展示一些代码来解释我的问题。
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ServletContextAttribListener implements ServletContextListener
{
private ServletContext context = null;
private MyThread myThread = new MyThread(true);
// This method is invoked when the Web Application
// is ready to service requests
public void contextInitialized(ServletContextEvent event)
{
this.context = event.getServletContext();
// Output a simple message to the server's console
myThread.start();
System.out.println("The Simple Web App. Is Ready");
}
public void contextDestroyed(ServletContextEvent event)
{
// Output a simple message to the server's console
System.out.println("The Simple Web App. Has Been Removed");
myThread.setB(false);
this.context = null;
}
public class MyThread extends Thread
{
private boolean b;
public MyThread(boolean b)
{
this.b = b;
}
@Override
public void run()
{
int i = 0;
int j = 0;
while (b)
{
//This part is important
for (i = 0; i < 1000000; i++)
{
}
//
j++;
}
System.out.println("Thread stopped i:->" + i + " j:->" + j);
}
public boolean isB()
{
return b;
}
public void setB(boolean b)
{
this.b = b;
}
}
}
如您所见,它是一个非常小的虚拟程序。我没有写 web.xml,我只是使用 listener-class。当我部署war,启动和停止tomcat时,程序的输出是:
The Simple Web App. Is Ready
The Simple Web App. Has Been Removed
Thread stopped i:->1000000 j:->17296
如您所见,在 for 循环中 i 为 1000000。我想要的是打破循环,无论 i 是 1000000 还是小于它。
你可以说我可以在 for 循环中使用 b 条件和 i<1000000 但在我的真实程序中我没有那个 for 循环。我只是像这里一样有一个 while 循环,但其中有很多行代码。我不想在一段时间内每次都检查 b。
顺便说一句,我不能使用 sleep /中断。
最佳答案
没有线程的协作,就没有干净的方法来停止线程。因此,如果您需要尽快停止,则必须尽可能频繁地检查停止标志(在您的示例中为 b
)。
顺便说一句,b
标志应该是volatile
,否则你的线程可能永远不会停止。
关于java - 使用 contextDestroyed 干预长时间运行的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9395896/
我想使用 Intervention 两次调整图像大小。 我目前有这个: $img = Image::make($image_url); $img_path = public_path() . '/im
我正在尝试安装干预。我运行这个命令 Composer 需要干预/图片并且 composer.json 已更新。我在 $aliases 数组中添加 'Image' => 'Intervention\Im
我正在尝试在 Laravel 5.1 中添加个人资料图片上传。我使用了 Intervention/Image 包,但是当我尝试上传图像时出现此错误: NotReadableException in A
我在使用 Intervention/image 时遇到问题,Laravel #composer install - intervention/image 2.1.1 requires ext-file
标题中的这一点很难解释,如果有人想更改它也没关系。 我遇到过这样的情况,在 WPF 中,我创建了一个对程序员透明的“隐藏”窗口。我的意思是,这个窗口是在静态构造函数中创建的,隐藏并移动到屏幕之外,它的
我正在制作一个电子商务门户网站。我正在尝试以不同的分辨率上传图像,但效果很好。 但问题是,如果我在上传后在浏览器中查看它,我会看到模糊的图像,这不是我想要的。我希望上传后的图像应该清晰可见,不应该模糊
我是 Android 新手。我有一个想法,可以在安装所需应用程序的同时丰富用户的知识。这个想法是开发一个应用程序,可以分析应用程序的 .apk 文件以检查它是否过度特权。并通知用户他正在尝试安装的此应
我在从 master rebase 到我的一个存储库中的“部署”分支时遇到问题。 我的仓库设置如下: master - of course, the main branch deploy - a br
我想不通。当我像这样调整上传图片的大小时, public function up(Request $request) { $user = $request->user(); $imag
我正在使用 intervention/image 2.3 .当我尝试上传图片时,出现以下错误: InvalidArgumentException in AbstractEncoder.php line
我是一名优秀的程序员,十分优秀!