`
szgaea
  • 浏览: 213575 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于多线程的wait与sleep的区别

 
阅读更多
在多线程编程中,经常会使用sleep与wait操作,我们理解sleep与wait的最大区别是sleep等待是不会释放当前锁,而wait则反之。我今天想到一个现实例子来比较这两者的区别。
  我以去火车站买票的例子来说明。我们去火车站买票,当站到售票窗口前要告诉售票员需要到哪里的票,什么时候发车的,售票员就通过电脑去给我们打印票,这个时候我们就得等待。如果我们用sleep模式,就得一直站在那里等,直到售票员给我们票;如果用wait模式,这个时候就离开我们所站的位置,后面的票友就可能站到我当前的位置(窗口前),我们要取票的话,就得重新排在队伍后面去取票。

  这是我今天想到的一个例子来帮助大家理解,欢迎大家拍砖!








美丽健康网http://www.meilijiankang.com
分享到:
评论
3 楼 liucl_tiger 2009-06-27  
嗯 ,比喻的很好!比看那个技术文档要好理解多了!
2 楼 bluesea2030 2009-06-26  
这么比喻,明了多了,如果很细心呀。。
1 楼 xiaoxinfq8 2009-06-26  
有道理,sleep是大家一起等,wait是一个人等,呵呵

相关推荐

    深入理解Wait、Notify和Wait与sleep区别

    3(深入理解Wait、Notify和Wait与sleep区别).rar

    多线程sleep,yield,wait区别

    NULL 博文链接:https://coolfire9201207034819.iteye.com/blog/1660744

    计算机后端-Java-Java核心基础-第20章 多线程 16. sleep()和wait()的异同.avi

    计算机后端-Java-Java核心基础-第20章 多线程 16. sleep()和wait()的异同.avi

    Java线程中wait,await,sleep,yield,join用法总结.pdf

    Java线程中wait、await、sleep、yield、join用法汇总,文章里面总结了这些关键字的用法,并且里面带有源码帮助分析用法,此一文就可以理解这些关键字用法,推荐拥有

    Linux多线程编程,替代sleep的几种方式

    我只想要进程的某个线程休眠一段时间的,可是用sleep()是将整个进程都休眠的,这个可能达不到,我们想要的效果了。目前我知道有三种方式:  1、usleep  这个是轻量级的,听说能可一实现线程休眠,我个人并不...

    java多线程示例

    Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并...

    Java多线程教程吐血整理干货.md

    sleep方法和wait方法的区别 stop,suspend,resume等方法为什么会被遗弃 interrupt,interrupted,isInterrupted方法区别 join方法 yield方法 多线程 进程和线程 进程与线程最主要的区别是它们是操作系统管理资源的不同...

    java 多线程设计模式 进程详解

    《JAVA多线程设计模式》PDF 下载 《Java线程 高清晰中文第二版》中文第二版(PDF) 前言 第一章 线程简介 Java术语 线程概述 为什么要使用线程? 总结 第二章 Java线程API 通过Thread类创建线程 使用Runable接口...

    Java线程中sleep和wait的区别详细介绍

    Java中的多线程是一种抢占式的机制,而不是分时机制。抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行

    多线程,高并发.pdf

    2. sleep() 和 wait() 有什么区别? 3. 同步和异步有何异同,在什么情况下分别使用他们? 4. 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法? 5. 简述 synchronized 和 java...

    windows下vc多线程编程

    本程序在VC环境中实现多线程编程。MultiThread有助于大家学习windows环境下的多线程编程。希望对大家能有所帮助。 hStdOut = GetStdHandle( STD_OUTPUT_HANDLE ); /* Get display screen's text row and column ...

    线程中sleep、join、yield、wait的区别

    CSDN前辈众多,本文要说全部原创,那不现实,但本文绝对走肾之文,概念知识多来自前辈博文讲解,特此感谢。 文章末尾会给出本人学习过程中翻阅的优秀博文。 正文 给出一段准备代码,相信各位一看就懂,不懂,你不懂...

    Java 多线程

    详细解说了Java开发语言中多线程中sleep()与wait()的区别、联系。

    java多线程设计模式

    java多线程设计模式 线程的创建和重起 线程的同步 wait/notify/sleep机制 Worker Pattern

    讲给女朋友听的java多线程(2万字深入理解多线程,有实例代码辅助理解)

    多线程线程概述线程的创建1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 使用线程池线程的调度线程的生命周期线程同步1. 方法一:同步代码块2. 方法二:同步方法3. 方法三:Lock(锁):4. 对比三种方法5....

    多线程,高并发.zip

    1. stop() 和 suspend() 方法为何不推荐使用? 反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象 处于一种不连贯状态,那么其他线程能在那种状态下...2. sleep() 和 wait() 有什么区别?

    Java多线程问题

    1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 2)在Java中Lock接口比synchronized块的优势是什么? 3)在java中wait和sleep方法的不同?

    Delphi多线程编程之三 同步读写全局数据

    提示临界区与事件对象(比如互斥对象)的最大的区别是在性能上。临界区在没有线程冲突时,要用10~15个时间片,而事件对象由于涉及到系统内核要用400~600个时间片。 使用互斥的步骤: 1、声明一个类型为Thandle或Hwnd...

    这就是标题—— JUC.pdf

    多线程锁 并发下的集合类 List Set Map Callable接口 线程创建的方式 callable / runnable FutureTask JUC常用辅助类 CountDownLatch (减少计数器) CyclicBarrier(加法计数器) Semaphore(信号量,流量控制) ...

    java7源码-thread:多线程相关的学习

    Java多线程 [TOC] 线程状态 1.New:尚未启动的线程的线程状态 2.Runnable:可运行线程的线程状态,等待CPU调度 3.Blocked:线程阻塞等待监视器锁定的线程状态 4.Waiting:等待线程的线程状态(wait、join、park) 5....

Global site tag (gtag.js) - Google Analytics