logo头像

Always believe youself.

并发编程

并发编程-7

共享模型之不可变不可变类的使用 不可变类设计 无状态类设计 日期转换问题 用锁 sync 解决,对性能有影响 不可变对象的使用,用 DateTimeFormatter 对象 不可变类的设计String是不可变的 final 的使用...

并发编程-6

第 6 章 共享模型之无锁 CAS 与 volatile 结合使用 原子整数 原子引用 原子累加器 Unsafe CAS无锁进行处理 其中的关键是compareAndSet 他的简称就是 CAS (也有 compare And ...

并发编程-5

第 5 章 (JMM)共享模型之内存 原子性可见性有序性 Monitor 主要关注的是访问共享变量时,保证临界区代码的原子性 主存:所有线程都共享的数据,静态成员变量,成员变量。 工作内存: 每个线程私有的数据,局部变量。 可见性...

并发编程-4

Park&Unpark Park 的状态就是 wait ,无限的等待。 unpark 既可以在 park 之前也可以在 unpark 之后调用。 如果先 unpark 了, 再调用 park 不会在等待。 park&...

并发编程-3

wait/notify小故事 原理 wait/notify API obj.wait() 让进入 object 监视器的线程 到 waitSet 等待。obj.wait(time) ,obj.wait(time,纳秒) 纳秒是假的,...

并发编程-2

管程共享问题程序中有两个线程 自增 5000 次和自减 5000 次,结果有可能不是 0 结果分析: 结果是正数,负数,0。 因为 Java 中 对静态变量的自增,自减并不是原子操作,要彻底的理解,必须从字节码来进行分析。 例如: i...

并发编程-1

进程和线程进程和线程 二者对比 进程基本上互相独立的,而线程是存在于进程内的,是进程的一个子集。 进程拥有共享的资源,如内存空间,功其内部线程共享 进程间通信较为复杂 同一台计算机的进程通信称为IPC 不同计算机通信,需要网络,并有...