java多线程易混淆点总结

忘是亡心i 2023-07-03 06:13 45阅读 0赞

1.notify和notifyAll区别

notifyAll调用后,会将全部的线程由等待池转移到锁池;

notify只会唤醒一个线程,具体唤醒哪一个线程由虚拟机控制;

2.线程的run()和start()有什么区别

start()方法用作启动线程,run()方法用于执行线程的运行时代码;run()可以重复调用,而start()只能调用一次;

3.sleep()和wait()的区别是什么

sleep是Thread的方法,wait()来自Object;

sleep不释放锁,wait释放锁;

用法上也有很大的差别,sleep到时间会自动恢复;wait()可以使用notify()/notifyAll()直接唤醒;

发表评论

表情:
评论列表 (有 0 条评论,45人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java线基础知识总结

    我们知道应用程序是以进程为单位运行,那应用程序内部如何多个子任务同时执行呢,这就引入了多线程,这里我们就可以得出,线程是进程的运行单位; java实现多线程的的方式主要有以下

    相关 c++指针总结(混淆)

    一:指针的概念   指针是一个特殊的变量,里面存储的数值是内存里的一个地址。学好指针,重要的是搞清楚指针的四个方面的内容:指针的类型、指针所指向的类型、指针所指向的内存区、指

    相关 并发混淆概念总结

    竞争 线程A执行逻辑经过x逻辑,线程B执行逻辑经过y逻辑。 竞争: 程序执行结果的正确性,取决于B的y逻辑必须要在A的x逻辑前执行,此时就发生了竞争。 感觉这么解释还