共享锁和独占锁的经典应用

  1. 共享锁和独占锁的经典应用,是控制最初用于读取的共享文件的更新。某个进程要读取文件, 会先取得该文件或该文件部分区域的共享锁。第二个但愿读取相同文件区域的进程也会请求共享 锁。两个进程能够并行读取,互不影响。可是,假若有第三个进程要更新该文件,它会请求独占 锁。该进程会处于阻滞状态,直到既有锁定(共享的、独占的)所有解除。一旦给予独占锁,其余 共享锁的读取进程会处于阻滞状态,直到独占锁解除。这样,更新进程能够更改文件,而其余读取 进程不会由于文件的更改获得先后不一致的结果。java

  2. 文件锁有建议使用和强制使用之分。建议型文件锁会向􏰀出请求的进程􏰀供当前锁定信息,但 操做系统并不要求必定这样作,而是由相关进程进行协调并关注锁定信息。多数 Unix 和类 Unix 操 做系统使用建议型锁,有些也使用强制型锁或兼而有之。操作系统

    强制型锁由操做系统或文件系统强行实施,无论进程对锁的存在知道与否,都会阻止其对文件
    锁定区域的访问。微软的操做系统每每使用的是强制型锁。假定全部文件锁均为建议型,并在访问
    共同资源的各个应用程序间使用一致的文件锁定,是明智之举,也是惟一可行的跨平台策略。依赖
    于强制文件锁定的应用程序,从根子上讲就是不可移植的。

3.设计

java.nio 中的类被特地地设计为支持级联调用。您可能已经在 StringBuffer 类中看进程

到了级联调用的使用。资源

若是聪明地使用级联调用,就能产生简􏰥,优􏰦,易读的
代码。但若是􏰧用,就会使代码不知所􏰨。当级联调用可
以增长可读性并使让您的目标更加明确时使用它。若是使
用级联调用会使代码做用不够清晰,那么请不要使用它。
请时刻保证您的代码易于他人阅读。
相关文章
相关标签/搜索