2014-12-05 91 views
2

上周我去参加面试,并在面试时的一个问我这个问题,有关线程run()方法的注意事项?

Q. What precaution do you take will writing a run() method? 

,我的回答是死锁,活同步,饥荒和很少的开销,但 他对我的回答并不满意。他没有告诉任何有当我们写运行,你应该照顾()方法中的一些其他的事情...

I wrote run() like this during interview.. 

class DrawCircle implements Runnable { 

    public void run(){ 
     //some code here 
    } 

} 

任何机构可以告诉我什么是在任何运行的线程写的run()的正确方法?

+2

我会在离开前问采访者的答案。这些都是蹩脚的问题,因为它不是关于什么是对或错,而是关于在面试官心目中判断什么,并且你已经回答了这个问题。糟糕的面试练习。 – 2014-12-05 05:08:18

+0

我也做过同样的事情。我问他回答这个问题,但他告诉你可以从谷歌获得。 – Som 2014-12-05 05:09:40

+5

糟糕的回应,一个好的面试官会一直向你解释。 – 2014-12-05 05:10:37

回答

2

没有什么明显的,但这些:

  1. 确保您run方法实际上在完成任务后返回,或者经过一些定义的阈值超时。如果run()卡在某处,那么线程将永远不会结束。如果由于某种原因,所有线程都卡住了,而且线程数量很多,那么它可能会导致系统崩溃。

  2. 如果要扩展Thread类,请确保覆盖正确的方法。为了安全起见,在该方法的顶部添加@override是很好的。

  3. 如果您正在实施匿名线程,请确保将其分配给Thread实例。如果您的run方法进入不良状态/无限循环。您可能能够使用该实例中断该线程。

+0

让我清除上面的代码... – Som 2014-12-05 05:01:56

+0

第1点 - 如果我希望该方法在应用程序的整个生命周期内运行,该怎么办?这不是一个不常见的要求。 – 2014-12-05 12:39:05