• 多线程的细节


      1.sleep方法和wait方法异同点是什么?

      答:相同点:可以让线程处于冻结状态

        不同点:sleep必须指定时间。wait可以指定时间,也可以不指定时间

            sleep时间到,线程处于临时阻塞或运行。wait如果没有时间,必须要通过notify或者notifyAll唤醒

            sleep不一定非要定义在同步中。wait必须定义在同步中。

            都应在同步中,sleep不会释放锁,wait会释放锁

      2.线程如何停止?

      答:stop方法过时了,看起描述发现,有其他解决方案。线程结束:就是让线程任务代码执行完,run方法结束。run方法咋结束呢?run方法中通常都定义循环,只要控制循环就可以了。注意:万一线程在任务中处于了冻结状态,name还能判断标记吗?不能。怎么办呢?通过查阅stop方法的描述,发现提供了一个解决方案:如果等待时间过长可以通过interrupt来中断等待。所谓的中断并不是停止线程,interrupt的功能是,让线程重新具备cpu的执行资格。因为是强制性的所以有异常抛出,可以再catch中捕获异常,在异常处理里中改变标记,让循环结束,让run方法结束。

      3.守护线程,后台线程,一般创建的是前台线程。前台后台线程运行时都是一样的,获取CPU的执行权执行。只有结束的时候有些不同:前台线程要通过run方法结束,线程结束;后台线程也可以通过run方法结束,线程结束,还有另一种情况,当进程中所有的前台线程都结束了,这时无论后台线程处于什么状态,都会结束,从而进程结束,进程结束依赖的都是前台线程。

  • 相关阅读:
    React Native ios打包
    ReactNative state更新,视图不更新的问题
    XF警告试图
    XF 彩色矩形块
    XF 定制图片
    XF 通过判断平台加载不同的图片
    XF 进度条和指示器
    XF 滑块和步进控件
    XF 开关控件
    XF 按钮控件
  • 原文地址:https://www.cnblogs.com/txdd-tg/p/8784569.html
Copyright © 2020-2023  润新知