美文网首页
线程考点

线程考点

作者: One_仑 | 来源:发表于2019-03-14 09:12 被阅读0次
    1、sleep和wait的区别

    sleep是Thread类的方法、wait是Object类中定义的方法
    sleep方法可以在任何地方使用
    wait方法只能在synchronized方法或synchronized块中使用

    Thread.sleep只会让出CPU,不会导致锁行为的改变
    Object.wait不仅让出CPU,还会释放已经占有的同步资源

    2、如何给run方法传参

    构造函数传参
    成员变量传参
    回调函数传参

    3、如何实现处理线程的返回值

    主线程等待发,如while死循环等等线程结束
    使用Thread类中的join阻塞当前线程以等待子线程处理完毕
    通过Callable接口实现:通过FutureTask或线程池获取,该对象的isDone可判断是否执行完,get方法可精准的等待call方法执行完再返回值。

    4、Thread和Runnable的区别

    Thread是实现了Runnable接口的类,使得run支持多线程
    因类的单一继承原则,推荐多使用Runable接口

    5、Thread中的start和run方法的区别

    调用start方法会创建一个新的子线程并启动
    run方法只是Thread的一个普通方法的调用

    6、notify和notifyAll的区别

    notifyAll会让所有处于等待池的线程全部进入到锁池去竞争获取锁的机会
    notify只会随机选取一个处于等待池中的线程进入锁池去竞争获取锁的机会

    相关文章

      网友评论

          本文标题:线程考点

          本文链接:https://www.haomeiwen.com/subject/fymxmqtx.html