深究為什么sleep后,會出現錯誤
還是沒有能夠解釋清楚這個事情啊,為什么加了休眠后就不行了,應該和sleep有關,sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿后,線程不一定立即恢復執行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非"醒來"的線程具有更高的優先級,所以當這個子線程(優先級肯定比主線程低了)恢復執行的時候,onresume()方法已經執行了,所以導致viewrootimp創建了...就進一步導致出現錯誤! 個人理解
還是沒有能夠解釋清楚這個事情啊,為什么加了休眠后就不行了,應該和sleep有關,sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿后,線程不一定立即恢復執行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非"醒來"的線程具有更高的優先級,所以當這個子線程(優先級肯定比主線程低了)恢復執行的時候,onresume()方法已經執行了,所以導致viewrootimp創建了...就進一步導致出現錯誤! 個人理解
2015-01-30
舉報
2015-08-24
優先級:
優先級高的線程被線程調度器調用的概率高,所以被喚醒的線程有更高的優先級也不能隨意停止正在運行的線程。
喚醒的子線程不能立即恢復執行:
主要原因:
(1)其他線程正在調用。
(2)cup執行線程的時間隨機。