与线程的run()方法有关的注意事项?

时间:2014-12-05 04:46:19

标签: java multithreading synchronization

上周我去采访了,在采访中,一位采访者向我提出了这个问题,

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

我的回答是死锁,活锁,同步,饥饿和很少的开销,但是 他对我的回答不满意。当我们编写run()方法时,他告诉没有其他的东西你应该照顾...

I wrote run() like this during interview.. 

class DrawCircle implements Runnable {

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

}

任何正文都可以告诉我在任何Runnable线程中编写run()的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

除了这些之外没什么明显的:

  1. 确保您的run方法在完成任务后实际返回,或者在某个已定义的阈值后超时。如果run()被卡在某处,那么线程永远不会完成。如果由于某种原因你的所有线程都被卡住了,并且你有大量的线程,那么它可能会使你的系统崩溃。

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

  3. 如果要实现匿名线程,请确保将其分配给Thread实例。如果您的run方法进入错误状态/ infinte循环。您可以使用实例中断线程。