Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复。wait() ...
分类:
编程语言 时间:
2018-07-25 11:36:21
阅读次数:
173
观察者模式 定义了一种一对多的依赖关系,让多个观察者对象去监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 下面通过代码去探索观察者模式的奥秘: 通过main方法测试看看效果 接下来解读下上述代码: 观察者模式的关键对象时主题subject和观察者Ob ...
分类:
其他好文 时间:
2018-07-24 11:52:22
阅读次数:
132
//my_err.h#include /* for definition of errno */ #include /* ISO C variable aruments */ static void err_doit(int, int, const char *, va_list); /* * No... ...
分类:
其他好文 时间:
2018-07-23 14:45:16
阅读次数:
206
Object.wait(miliSec)/notify()/notifyAll() 线程调用wait()之后可以由notify()唤醒,如果指定了miliSec的话也可超时后自动唤醒。wait方法的调用会让当前线程放弃已经获取的object锁标志位,比如在同步代码块synchronized中调用wa ...
分类:
编程语言 时间:
2018-07-21 14:33:47
阅读次数:
212
cond = threading.Condition() # 类似lock.acquire() cond.acquire() # 类似lock.release() cond.release() # 等待指定触发,同时会释放对锁的获取,直到被notify才重新占有琐。 cond.wait() # 发送 ...
分类:
编程语言 时间:
2018-07-18 19:07:22
阅读次数:
127
先看下这个模式的定义。 定义对象间的一种一对多的依赖关系,当一个对象的状态发送改变时,所有依赖于它的对象都能得到通知并被自动更新 先来讲几个情景。 情景1:有一种短信服务,比如天气预报服务,一旦你订阅该服务,你只需按月付费,付完费后,每天一旦有天气信息更新,它就会及时向你发送最新的天气信息。 情景2 ...
分类:
移动开发 时间:
2018-07-16 11:34:14
阅读次数:
224
0. 前言 与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的。 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWri ...
分类:
编程语言 时间:
2018-07-15 17:40:00
阅读次数:
184
wait() notify() notifyAll() 这3个方法用于协调多个线程对共享数据的存取,所以必须在synchronized语句块中使用。 wait() 必须在synchronized函数或者代码块里面,wait()会让已经获得synchronized函数或者代码块控制权的Thread暂时 ...
分类:
编程语言 时间:
2018-07-13 15:10:03
阅读次数:
157
1.基本描述 inotify提供了一种监控文件系统事件的机制,可以用来监控单个的文件以及目录。当一个目录被监控,inotify会返回该目录以及该目录下面文件的事件。 2.原理以及使用 2.1内核原理 inotify机制借用了内核里面的notify通知链技术,针对文件系统里面的使用主要是在inode结 ...
分类:
其他好文 时间:
2018-07-12 18:13:50
阅读次数:
222
前言/背景 在前面说到了UnSafe类,它给我提供了一个“后门”,让我们可以直接操作内存,挂起线程等操作。这一讲我们来看看LockSupport,顾名思义,它是给我们后面的LockSupport提供支持的。 概述 在我们过去的学习的,说起线程的挂起与恢复,我们就会想到wait与notify。在Loc ...
分类:
其他好文 时间:
2018-07-10 11:33:12
阅读次数:
160