上周我去采访了,在采访中,一位采访者向我提出了这个问题,
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()的正确方法是什么?
答案 0 :(得分:2)
除了这些之外没什么明显的:
确保您的run
方法在完成任务后实际返回,或者在某个已定义的阈值后超时。如果run()
被卡在某处,那么线程永远不会完成。如果由于某种原因你的所有线程都被卡住了,并且你有大量的线程,那么它可能会使你的系统崩溃。
如果要扩展Thread类,请确保覆盖正确的方法。为安全起见,在方法之上添加@override
是好的。
如果要实现匿名线程,请确保将其分配给Thread
实例。如果您的run
方法进入错误状态/ infinte循环。您可以使用实例中断线程。