最后是把throwable的error,也就是设置Thread里的_pending_async_exception为threaddeath,设置线程的_special_runtime_exit_condition 的状态设置为_async_exception,同时设置线程的_suspend_flags值为_has_async_exception。
注意在这里只是设置了异步的exception,和设置了运行退出的状态为_async_exception, 并没有直接设置_pending_exception,也就是说要终止的线程运行过程中发现有has_async_exception 执行check_and_handle_async_exceptions,才把_pending_async_exception赋值到_pending_exception,被线程执行并抛出这个异常。
因为thread 当前状态有可能在wait/sleep, 所以同时interrupt线程。