摘要: 本章会介绍一些最有用的并发构建模块,有丶东西(最后一小节,纯干货)。 5.1 同步容器类 同步容器类包括 Vector 和 Hashtable ,这些类实现线程安全的方式是:将它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态。 5.1.1 同步容器类的问题 同步容 阅读全文
posted @ 2018-07-30 16:18 躲猫猫的猫 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 到目前为止,我们已经介绍了关于线程安全与同步的一些基础知识。然而,我们并不希望对每一系内存访问都进行分析以确保程序是线程安全的,而是希望将一些现有的线程安全组件组合为更大规模的组件或程序。 4.1 设计线程安全的类 通过使用封装技术,可以使得在不对整个程序进行分析的情况下就可以判断一个类是否是线程安 阅读全文
posted @ 2018-07-20 13:53 躲猫猫的猫 阅读(1680) 评论(0) 推荐(0) 编辑
摘要: 本章将介绍如何共享和发布对象,从而使他们能够安全地由多个线程同时访问。这两章合在一起就形成了构建线程安全类以及通过 java.util.concurrent 类库来构建开发并发应用程序的重要基础。 3.1 可见性 可见性是一种复杂的属性,因为可见性中的错误总是违背我们的直觉。为了确保多个线程之间对内 阅读全文
posted @ 2018-07-11 11:25 躲猫猫的猫 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享(Shared)和可变的(Mutable)状态的访问。 “共享”意味着变量可以由多个线程同时访问,而“可变”则意味着变量的值在其生命周期内可以发生变化。我们将像讨论代码那样来讨论线程安全性,但更侧重于如何防止数据在数据上发生不可控 阅读全文
posted @ 2018-06-29 11:11 躲猫猫的猫 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 继上一本《深入理解Java虚拟机》之后,学习计划里的另一本书《Java并发编程实战》现在开始学习,并记录学习笔记。 第一章主要内容是介绍 并发 的简介、发展、特点。 编写正确的程序很难,而编写正确的并发程序则难上加难。与串行程序相比,在并发程序中存在更多容易出错的地方。那么,为什么还要编写并发程序? 阅读全文
posted @ 2018-06-28 14:18 躲猫猫的猫 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一.概述 面向过程的编程思想极大地提升了现代软件开发的生产效率和软件可以达到的规模,但是现实世界与计算机世界之间不可避免地存在一些差异,本节就如何保证并发的正确性和如何实现线程安全讲起。 二.线程安全 “线程安全”这个名称,在Google 中搜索它的概念,找到的类似于:“如果一个对象可以安全地被多个 阅读全文
posted @ 2018-06-21 10:06 躲猫猫的猫 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 一. 案例分析 1. Tomcat:正统的类加载器架构 主流的Java Web服务器,如Tomcat、Jetty、WebLogic、WebSphere或其他服务器,都实现了自己定义的类加载器(一般都不止一个)。因为一个功能健全的Web服务器,要解决如下问题: 部署在同一个服务器上的两个Web应用程序 阅读全文
posted @ 2018-06-14 10:23 躲猫猫的猫 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 一.概述 虚拟机类加载机制:虚拟机把描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类型加载 阅读全文
posted @ 2018-06-06 14:39 躲猫猫的猫 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 鲁迅曾经说过:代码编译的结构从本地机器码转变为字节码,是存储格式发展的一小步,确是编程语言发展的一大步。 一.无关性的基石 Java设计者在最初就承诺过“In the future, we will consider bounded extensions to the Java virtual ma 阅读全文
posted @ 2018-05-23 16:40 躲猫猫的猫 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 之前已经介绍过处理Java虚拟机内存问题的知识与工具,在处理实际项目的问题时,除了知识与工具外,经验同样是一个很重要的因素。本章会介绍一些具有代表性的案例。 本章的内容推荐还是原文全篇看完的好,实在不方便摘取重点做记录。 重中之重就是:多动手使用虚拟机工具监控系统的内存分配、GC情况 一.案例分析 阅读全文
posted @ 2018-05-17 16:42 躲猫猫的猫 阅读(261) 评论(0) 推荐(0) 编辑