Archives

帖子来自 octobershiner RSS

java多线程 sleep()和wait()的区别

作者: octobershiner (2 篇文章) 日期: 十二月 16, 2011 在 11:58 上午
评论 (33)

接触了一些多线程的东西,还是从java入手吧。 相信看这篇文章的朋友都已经知道进程和线程的区别,也都知道了为什么要使用多线程了。 这两个方法主要来源是,sleep用于线程控制,而wait用于线程间的通信,与wait配套的方法还有notify和notifyAll. 区别一: sleep是Thread类的方法,是线程用来 控制自身流程的,比如有一个要报时的线程,每一秒中打印出一个时间,那么我就需要在print方法前面加上一个sleep让自己每隔一秒执行一次。就像个闹钟一样。 wait是Object类的方法,用来线程间的通信,这个方法会使当前拥有该对象锁的进程等待知道其他线程调用notify方法时再醒来,不过你也可以给他指定一个时间,自动醒来。这个方法主要是用走不同线程之间的调度的。 区别二 : 关于锁的释放 ,在这里假设大家已经知道了锁的概念及其意义。调用sleep方法不会释放锁(自己的感觉是sleep方法本来就是和锁没有关系的,因为他是一个线程用于管理自己的方法,不涉及线程通信) JDK 7 中的解释: “public static void ...

继续 ›

分类: 高校博客大奖赛

设计模式学习----观察者模式(事件监听实现)

作者: octobershiner (2 篇文章) 日期: 十二月 16, 2011 在 11:57 上午
评论 (1)

今天分享一个设计模式----观察者模式,其实这种设计模式,我们早就接触过,做过GUI编程的同学肯定会知道,事件的注册监听等机制,其实这个机制的实现就是利用了观察者模式。 可能在程序中,我们需要在某些数据变化时,其他的类做出一些响应,我们总不能开一个线程,每隔一段时间就去检测数据有没有发生变化吧,那样效率很低,我们更希望那些具有变化属性的类能够主动将自己的变化推送给,希望检测这些变化的其他类。正如我们去医院排队,不能隔两分钟就去问大夫“轮到我了吗”,而是坐在那里等大夫的通知,大家都接收到一个名字信号,叫到谁谁就去~ ...

继续 ›

分类: 其他, 高校博客大奖赛