我遇到了一个问题,试图在经过一定时间后立即停止一个线程,因为thread.stop和类似的其他线程已经折旧。
我试图停止的线程使用我的鼠标,我需要停止它,以便我可以用其他方式使用我的鼠标。
我在想的是下面的代码,它只是制作另一个线程来观察主线程已经运行了多长时间,如果它是活的,就停止它,但我无法完成这一点。
public void threadRun(int a) {
Thread mainThread = new Thread(new Runnable() {
@Override
public void run() {
// does things with mouse which may need to be ended while they
// are in action
}
});
Thread watchThread = new Thread(new Runnable() {
@Override
public void run() {
if (timeFromMark(mark) > a) {
if (mainThread.isAlive()) {
// How can I stop the mainThread?
}
}
}
});
}
您需要为扩展runnable的第二个线程定义一个类,并将第一个线程作为参数传递。
然后您可以停止第一个线程。
但不是手动执行,而是查看Java ThreadPoolExecuter及其AwaitTermination(long timeout,TimeUnit unit)
方法。(http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/threadpoolexecutor.html)
ExecutorService executor = Executors.newFixedThreadPool(1);
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
System.out.println("doing stuff");
Thread.sleep(10000);
System.out.println("finished");
} catch (InterruptedException e) {
System.out.println("Interrupted before finished!");
}
}
};
executor.execute(r);
executor.shutdown();
try {
executor.awaitTermination(1, TimeUnit.SECONDS);
executor.shutdownNow();
} catch (InterruptedException e) {
//
}
System.out.println("Thread worker forced down. Continue with Application...");
doing stuff
Interrupted before finished!
Thread worker forced down. Continue with Application...
最后两个消息在时间上几乎相等,并且可能改变位置(它的两个不同的线程,继续)
我试图找出如何使python停止接受输入后一定数量的时间。 到目前为止,我已经得到了工作,但不会停止程序,直到用户按下回车键。如果有关系,我在蟒蛇提示符中运行这个文件。 换句话说,我想做一些东西,这样Python就不会再等待输入了。如果用户在计时器结束前输入了任何东西,程序运行正常,这很好,除非玩家什么也没输入。如果他们甚至不按回车键,那么整个过程就会停止。(我也是Python的绝对初学者。事实上
问题内容: 有什么办法可以阻止python.exe在完成后立即关闭?它关闭的速度比我读取输出的速度快。 这是程序: 问题答案: 您不能-全局地,即对于每个python程序。这是一件好事-Python非常适合编写脚本(自动执行操作),并且脚本应该能够在无需任何用户交互的情况下运行。 但是,您始终可以在程序结束时要求输入,从而有效地使程序保持活动状态,直到您按回车键为止。使用在Python 3 (或在
我在LibGDX做一个项目。这是一款2d平台游戏。你可以说这就像超级马里奥。 这就是我如何把我的球员移到右边: 当我离开钥匙时,玩家仍然在移动一点。(我想他的身体上仍然有“线性冲动”的力量)。 我怎样才能让它停下来? 我的问题可能很简单:拿着钥匙,在LibGDX上向一个方向移动身体的最佳方式是什么。当我离开钥匙时,玩家立即停止。 BDW——我尝试过“setTransform”,当身体触摸其他物体时
我在我的工作区中使用STS IDE运行了几个Spring Boot应用程序,在我对其中一个项目进行maven更新后,每个项目都在应用程序启动过程后立即停止。我甚至创建了一个最小的例子,只是为了开始一些事情,同样的事情发生了。 这是我的pom.xml 即使是那些入门示例也会在启动后立即停止。我会非常感谢这里的一些帮助。 编辑:正如Alexandru Marina在评论中所说,我使用的是快照而不是稳定
我的应用程序设置为(非故意)服务将使用gps/网络侦听器轮询位置。它工作得很好,因为我负责服务何时结束(即在找到新位置或达到超时时调用stopSelf())。然而,我最近读到,intentService可能更适合长时间运行的任务,因为它不是在ui线程上运行的,而是在自己的工作线程上运行的。问题是,现在它不允许服务在任何时间运行(我假设这是因为服务中没有任何活动发生,而侦听器等待接收位置,因此服务本