Android线程细节

时间:2010-09-21 11:42:51

标签: java android multithreading

我可以创建一个扩展Thread的类,并用循环覆盖run方法。 然后我用myThread.start()启动它,它创建OS线程并执行我的run()。 这一切都很好。

但是,我不太了解细节。当我有机会时,我会使用测试代码来解决这个问题,但在此之前,任何人都可以回答这些问题:

Q1。构造函数何时执行,可能是在声明myThread时,或者在start()?

时执行

Q2。我的run()代码完成后会发生什么?有没有办法让它在同一个线程中再次运行(即不丢失类中定义的所有线程变量值)大概调用start()可能会创建一个新的os线程?

Q3。大概只是调用myThread.run()会在当前活动的上下文中执行我的run(),而不是mythread,在这种情况下,它如何访问线程变量?)

-Frink

1 个答案:

答案 0 :(得分:4)

A1)构造MyThread类的实例时

A2)线程无法运行两次或重新启动as stated in the documentation

A3)是的,直接调用run()将在当前线程中执行该函数,而不是在新线程中执行。如果你只想调用run(),创建一个扩展Thread的类没有多大意义。您应该始终致电start()