多线程的sleep和wait
来源:互联网 发布:男士西服知乎 编辑:程序博客网 时间:2024/06/10 17:20
sleep 方法 和 wait 方法
sleep 是占着cpu睡觉,(更通俗的说是继续占着毛坑,但在一定时间段内暂停拉屎)。当前线程 sleep 时,该线程继续持有资源和cpu执行权,其它线程不允许拥有cup。若不发生InterruptedException,该线程的沉睡时间是确定的,传入多少毫秒就是多少毫秒。沉睡时间一过,继续接着上次再执行(继续拉)。
sleep是静态方法,谁调用谁睡觉。就算在main线程里调用了A线程的sleep()方法,而实际上还是main线程在睡觉。如果要让线程A去睡觉,必须在A的代块中调用sleep方法。
wait() 方法往往与notify 或 notifyAll成对出现。当前线程调用它时,该线程释放所持有的资源(即让出资源)和cup执行权,转移到线程池中等待,此时其它线程可以获得cpu执行权。当某个正在执行的线程调用notify 或 notifyAll时,将它或其它的同在线程池中的所有线程唤醒,它们共同进入就绪序列等待os(操作系统)分配资源。
wait( long n ), Cause the current thread to wait nutil either another thread invokes notify() or notifyAll() method for this object, or a specified amount time has elapsed.
当前线程调用 wait( long n ) 方法时,其它的线程可以将其唤醒,回到就绪序列中等待os分配资源,即使未到指定的时间(即传入的参数n )也可以。如果未notify或notifyAll,在指定时间一到也可以加到就绪序列,等待os分配资源。
- 多线程的sleep和wait
- 多线程的wait()和sleep()
- 多线程中sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- Windows核心编程学习七:用户模式下的线程同步
- Uboot的bad_save_user_regs
- C++ Data Member内存布局
- SPM kernel( histogram intersection)
- 数据库设计方法、规范与技巧(推荐)
- 多线程的sleep和wait
- iOS - 获取系统信息&应用信息
- Twitter Storm的一些关键概念
- Android常见问题
- stl::string 函数备份
- jquery里截取获取的字符的前后空格
- Android 中使用自定义字体的方法
- java_JOGL_安装,例子
- ajax仿thinkphp官网搜索功能