拥有 标签的文章 共 2 条数据

不可不说的Java“锁”事
技术杂谈

不可不说的Java“锁”事

3186次浏览 0条评论

前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:1. 乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概念对应的实际应用。先说概念。对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中,synchronized关键字和Lock的实现类都是悲观锁。而乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果数据已经被其他线程更新,则根据不同的实现方式执行不同的操作(例如报错或者自动

Java线程(第三版)PDF下载
编程书籍

Java线程(第三版)PDF下载

3478次浏览 0条评论

《Java线程》这一经典图书的新版为你展示出如何完全地运用Java的threading功能且展示出在Java 2 Standard Edition Version 5.0(J2SE 5.0)上最新的变动。本书提供了完整的以及步骤详尽的thread程序设计方法。Java的threading系统与其他的threading系统相较之下显得更为简单。在早期的Java版本中,简化是有利有弊的,如在其他threading系统上可以看到的某些高级功能在Java中是找不到的。J2SE 5.0改变了一切:它提供了非常多的与thread相关的新class,能够让撰写multithreaded程序的工作变得更简单。《Java线程》第三版已经过完整的扩编与修订。本书完整收录了来自java.util.concurrent的并发功能。新的章节涵盖thread的性能、在Swing中使用thread、thread与Collection class、thread pool以及thread与I/O(传统的、新型的、中断的)。还无法配置J2SE 5.0的开发者可以借由附录中所提供的thread工具于较早的Java版本中达成