当前位置: 首页 > 面试题库 >

如何设置一个无限循环并打破它。(Java线程)

孔阳炎
2023-03-14
问题内容

我已经设置了一个线程,我想使用循环来运行它。因此,该线程应在循环中运行并在一定时间内中断,然后再次运行循环。

请我不知道该怎么做。有人可以指导我。


问题答案:

假设您在JDK 1.5或更高版本(澄清和改进了内存模型)上运行,则可以使用

public class MyRunnable extends Runnable
{
   private volatile boolean cancelled;

   public void run() {
      while (!cancelled) { 
         doStuff();
      }
   }

   public void cancel()
   {
      cancelled = true;  
   }

   public boolean isCancelled() {
      return cancelled;
   }
}j

或者,使用java.util.concurrent.Future和FutureTask,它们支持立即取消。



 类似资料:
  • 问题内容: 尽管我知道问这个问题会有点愚蠢,但我仍然想查询有关它的技术观点的更多信息。 无限循环的简单示例: 如何从此类外部中断(停止)此无限循环(例如,在继承的帮助下)? 问题答案: 即使写这篇文章我也觉得很脏,但是… 从不同的线程,你可以调用一个实现,抛出一个当你调用。

  • 我正在编写代码,拍摄屏幕的图片,然后逐个像素地检查某个RGB值。然后,我想让它在RGB值上单击一次,然后中断,但由于某种原因,循环一直在所有像素上运行,忽略我输入的中断命令,单击该颜色的所有像素,而不是单击一次。有什么解决办法吗?

  • 问题内容: 因此,我有一个Tkinter GUI,其中有两个简单的选项,即开始和停止按钮。我已经定义了GUI布局: 此处的“开始”按钮运行无限循环扫描,而“停止”按钮在按下时应会中断: 但是,当我按下“开始”按钮时,它总是被按下(假定由于无限循环)。但是,我 无法单击“停止”按钮 来打破while循环。 问题答案: 您不能在Tkinter事件循环所处的同一线程中启动循环。这样做将阻塞Tkinter

  • 我已经写了这个生产者/消费者问题解决方案。它似乎在工作,而不是无限循环。我的印象是,pthread\u exit(NULL) 会让它停止,但老实说,我已经迷路了。有人能告诉我如何阻止循环的正确方向吗?

  • 问题内容: 由于某种原因,当我在路由中拥有动态属性并访问该页面时,我陷入了无限循环,该页面将不断请求自己。 我正在查看的路由是/ userlists /:id路由。该路由的控制器是- 当我访问/ userlists / 9时,我看到- 每3秒被记录一次,页面冻结。只要位置后面有一个斜杠(“ / userslists /”而不是“ / userlists”),就好像发生了这种情况。 有人知道原因吗?

  • 我正在尝试做一个数字猜测游戏,如果用户匹配他们赢得现金的幸运数字,游戏将继续进行,直到他们用完现金。他们每打一轮都要付赌注。每一轮都会产生一个新的随机数。 我只想使用一个输入。当我把输入放在循环中,循环无限停止循环,当我把它放在循环外,它无限开始循环。我该怎么阻止这一切?我需要向while循环添加什么?我尝试突破,但我想继续比赛,直到钱用完。 我只想使用一个输入,但是当我把输入带出循环(lucky