
并发
文章平均质量分 56
并发
wsjtwmy
这个作者很懒,什么都没留下…
展开
-
[Linux]《Linux内核设计与实现》——内核同步方法
https://www.processon.com/embed/5e8db399f346fb354d69f384原创 2020-04-10 09:43:14 · 198 阅读 · 0 评论 -
[Java][多线程]《Java并发编程实战》—— 第二章 线程安全性
编写线程安全的代码,核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问。 对象的状态 同步机制: synchronized(独占的加锁方式) volatile 显式锁 原子变量 多个线程访问同一个变量时,有3种方式保障安全: 不在线程之间共享该状态变量 将状态变量设计为不可变的变量 在访问状态变量时使用同步 程序状态的封装性越好,就越容易实现程序的线程安全性,并且代码的维护...原创 2018-12-27 19:08:45 · 231 阅读 · 1 评论 -
[Java][多线程]《Java并发编程实战》—— 第一章 简介
早期计算机 每次只能运行一个程序 操作系统 每次能运行多个程序,不同的程序都在单独的进程中运行。操作系统为各个独立执行的进程分配各种资源,包括内存,文件句柄以及安全证书等。不同的进程之间可以通过一些粗粒度的通信机制来交换数据,包括:套接字、信号处理器、共享内存、信号量以及文件等。 促进进程出现的因素: 资源利用率 公平性 便利性 线程 允许在同一个进程中同时存在多个程序控制流。线程共享进程范围内的...原创 2018-12-27 18:43:01 · 285 阅读 · 1 评论 -
[Java][多线程]《Java并发编程实战》—— 第三章 对象的共享
synchronized的两个作用:原子性和内存可见性。 在没有同步的情况下,编译器、处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整(重排序)。 失效数据 非原子的64位操作 加锁的含义不仅仅局限于互斥行为,还包括内存可见性,为了确保所有线程都能看到共享变量的最新值,所有执行读操作或者写操作的线程都必须在同一个锁上同步。 volatile 不进行重排序。 不会被缓存在寄存器或者对其...原创 2019-01-06 19:53:53 · 214 阅读 · 1 评论 -
[Java][多线程]《Java并发编程实战》—— 第四章 对象的组合
在设计线程安全类的过程中,需要包含以下三个基本要素: 找出构成对象状态的所有变量 找出约束状态变量的不变性条件 建立对象状态的并发访问管理策略 同步策略定义了如何在不违背对象不变性条件或后验条件的情况下对其状态的访问操作进行协同。同步策略规定了如何将不可变性、线程封闭与加锁机制等结合起来以维护线程的安全性,并且还规定了哪些变量由哪些锁来保护。 **原子操作的目的是为了避免无效状态的出现。**所以...原创 2019-05-12 22:06:58 · 930 阅读 · 1 评论