摘要:
更多干货尽在 一行一行源码分析清楚AbstractQueuedSynchronizer 一. 概述 为实现依赖于先进先出 (FIFO) 等待队列的阻塞锁和相关同步器(信号量、事件,等等)提供一个框架。 此类的设计目标是成为依靠单个原子 int 值来表示状态的大多数同步器的一个有用基础。 子类必须定义 阅读全文
摘要:
package com.pinnet.test; public class Demo { public static void main(String[] args) { Demo demo = new Demo(); new Thread(new Runnable() { @Override pu 阅读全文
摘要:
计算机基础 JVM 数据结构 并发编程 阅读全文
摘要:
Linux命令在线查询 阅读全文
摘要:
Windows 编写的 shell 脚本 在 Linux 不能直接运行 Windows 下编写的 shell 脚本的文件编码格式为 dos Linux 下运行的 shell 脚本的文件编码格式应为 unix 查看脚本文件 vi ***.sh 然后 查看文件编码格式 shift + : set ff 阅读全文
摘要:
synchronize 的另一个作用 : 内存可见性. 3.1 可见性 为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制. 指令重排序 : 编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段. 3.1.1 失效数据 非线程安全下读取变量时可能读取到一个失效的值. 阅读全文
摘要:
2.0 简介 线程安全的核心: 对 对象状态(包括实例和静态域)操作的访问顺序进行管理. Java 的主要同步机制: synchronize(独占的加锁方式) volatile(值被修改后立即对其他线程可见) Lock(显示锁, 提供了比使用 synchronized 方法和语句可获得的更广泛的锁定 阅读全文
摘要:
1.1 并发简史 操作系统使得计算机每次能运行多个程序,并且不同的程序都在单独的进程中运行: 操作系统为每个独立的进程分配各种资源,包括内存,文件句柄和安全证书等. 如果需要的话,在不同进程之间可以通过一些粗粒度的通信机制来交换数据, 包括套接字,信号处理器,共享内存,信号量及文件 计算机加入操作系 阅读全文
摘要:
一. 静态代理 代理类实现被代理类实现的接口 或者 继承被代理类继承的父类;(这一项可以没有) 代理类持有被代理类的引用; 调用代理类方法时通过被代理类的引用调用被代理类的方法,并在调用方法前后可进行其他操作; 代码示例: 二. 动态代理 代理类必须实现被代理类实现的接口 (只能是接口) 代理类持有 阅读全文
摘要:
一.核心本质 实现了调用者和创建者的分离,用工厂方法代替new操作 将选择实现类,创建对象统一管理和控制.从而将调用者和实现类解耦 详细分类: 简单工厂模式 用来生产同一等级结构的任意产品(增加新产品需要修改已有代码, 可通过装饰者模式优化) 工厂方法模式 用来生产同一等级结构的固定产品(支持增加任 阅读全文