Questions tagged «runnable»

Runnable接口定义了一个方法run,旨在包含在线程中执行的代码。

30
Java中的“可运行的实现”与“扩展线程”
从什么时候开始在Java中使用线程开始,我发现了以下两种编写线程的方法: 与implements Runnable: public class MyRunnable implements Runnable { public void run() { //Code } } //Started with a "new Thread(new MyRunnable()).start()" call 或者,使用extends Thread: public class MyThread extends Thread { public MyThread() { super("MyThread"); } public void run() { //Code } } //Started with a "new MyThread().start()" call 这两个代码块有什么显着区别吗?


17
命名ExecutorService的线程和线程池
假设我有一个利用该Executor框架的应用程序 Executors.newSingleThreadExecutor().submit(new Runnable(){ @Override public void run(){ // do stuff } } 当我在调试器中运行此应用程序时,将使用以下(默认)名称创建线程:Thread[pool-1-thread-1]。如您所见,这并不是非常有用,而且据我所知,该Executor框架没有提供一种简便的方法来命名已创建的线程或线程池。 那么,如何为线程/线程池提供名称呢?例如,Thread[FooPool-FooThread]。


7
可通过参数运行吗?
我需要一个“接受参数的可运行对象”,尽管我知道这种可运行对象实际上并不存在。 这可能表明我的应用程序设计存在根本缺陷,并且/或者疲倦的大脑中存在智力障碍,因此我希望在这里找到一些建议,以在不违反基本的OO原则的情况下实现以下目标: private Runnable mOneShotTask = new Runnable(String str) { public void run(String str) { someFunc(str); } }; 任何想法如何完成上述工作?
177 java  runnable 

2
用一个简单易懂的解释,Java中的Runnable是什么?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 用外行的话来说,Java中的“可运行”是什么?我是一名高中的AP编程学生,其任务是进行研究或从他人那里寻找“可运行的”是什么(我们只是进入OOP,并且还没有接触过线程)。
92 java  runnable 

9
有没有办法让Runnable的run()抛出异常?
我在实现Runnable的类中的run()中调用的方法被设计为引发异常。 但是Java编译器不允许我这样做,建议我用try / catch包围它。 问题是,通过用try / catch包围它,我使特定的 run()变得无用。我确实想抛出该异常。 如果我指定throws的run()的本身,编译器会抱怨说Exception is not compatible with throws clause in Runnable.run()。 通常我完全不放过 run()抛出异常的。但是,在我必须具有该功能的特殊情况下。 如何解决此限制?


2
Java指派执行程序由于某种原因失败时,停止执行程序服务
我需要某种服务,该服务将在1秒的间隔内同时运行1分钟1分钟。 如果其中一项任务失败,则我想停止该服务,并停止运行该服务的每个任务,并带有某种指示错误的指示器,否则,如果在一分钟后一切正常,则该服务将停止并指示所有指示器均正常运行。 例如,我有2个功能: Runnable task1 = ()->{ int num = Math.rand(1,100); if (num < 5){ throw new Exception("something went wrong with this task,terminate"); } } Runnable task2 = ()->{ int num = Math.rand(1,100) return num < 50; } ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2); task1schedule = scheduledExecutorService.scheduleAtFixedRate(task1, 1, 60, TimeUnit.SECONDS); task2schedule = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.