声明:本文是《 Java 7 Concurrency Cookbook 》的第二章,作者: Javier Fernández González 译者:许巧辉 校对:方腾飞
引言
在这个章节中,我们将覆盖:
介绍
在并发编程中发生的最常见的一种情况是超过一个执行线程使用共享资源。在并发应用程序中,多个线程读或写相同的数据或访问同一文件或数据库连接这是正常的。这些共享资源会引发错误或数据不一致的情况,我们必须通过一些机制来避免这些错误。
解决这些问题从临界区的概念开始。临界区是访问一个共享资源在同一时间不能被超过一个线程执行的代码块。
Java(和 几乎所有的编程语言)提供同步机制,帮助程序员实现临界区。当一个线程想要访问一个临界区,它使用其中的一个同步机制来找出是否有任何其他线程执行临界 区。如果没有,这个线程就进入临界区。否则,这个线程通过同步机制暂停直到另一个线程执行完临界区。当多个线程正在等待一个线程完成执行的一个临界 区,JVM选择其中一个线程执行,其余的线程会等待直到轮到它们。
本章展示了一些的指南,指导如何使用Java语言提供的两种基本的同步机制:
- 关键字synchronized
- Lock接口及其实现
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/140899.html