一、原子性 原子性是指一个操作是不可中断的。即使是在多线程一起执行的时候,一个操作一旦开始,就不会被其它线程干扰。 原子的含义本身就是不可再分的,对于一个不可再分的操作要么就完成,要么就完不成,不会说做一半被另外一个线程给干扰。 一般认为CPU的指令都是一些原子操作,但是像程序代码里的东西就不是原子 ...
分类:
编程语言 时间:
2020-02-13 19:22:08
阅读次数:
69
1.对象的创建 1.给对象分配内存 指针碰撞 空闲列表 2.线程安全性问题 线程同步 本地线程分配缓冲 2.对象的结构 3.对象的访问定位 使用句柄 直接指针 ...
分类:
编程语言 时间:
2020-02-13 17:10:48
阅读次数:
66
一、队列 Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列来实现线程间的同步。 queue.Queue ...
分类:
系统相关 时间:
2020-02-13 09:19:00
阅读次数:
89
一、简介 StampedLock类,在JDK1.8时引入,是对读写锁ReentrantReadWriteLock的增强,该类提供了一些功能,优化了读锁,写锁的访问,同时是读写锁之间可以互相转换,更细粒度控制并发。 首先明确下,该类的设计初衷是作为一个内部工具类,用于辅助开发其他线程安全组件,用得好, ...
分类:
其他好文 时间:
2020-02-12 22:29:04
阅读次数:
96
1.引子 在java多线程并发编程中,有八大基础核心。考考你: 看看都有哪八大基础核心呢?它们分别是: 1.创建线程的方式 2.线程启动 3.线程停止 4.线程生命周期 5.线程相关的方法 6.线程相关的属性 7.线程异常处理 8.线程安全 今天我们从第六个基础核心开始:线程相关属性 2.考考你 # ...
分类:
编程语言 时间:
2020-02-12 10:29:03
阅读次数:
85
前言 微信红包业务,发红包之后如果24小时之内没有被领取完就自动过期失效。 架构设计 业务流程 老板发红包,此时缓存初始化红包个数,红包金额(单位分),并异步入库。 红包数据入延迟队列,唯一标识+失效时间 红包数据出延迟队列,根据唯一标识清空红包缓存数据、异步更新数据库、异步退回红包金额 代码案例 ...
分类:
微信 时间:
2020-02-11 19:22:09
阅读次数:
102
Collection体系提供的常??法: new: new ArrayList(Collection), new ArrayList() R: size()/isEmpty()/contains()/for()/stream() C/U: add()/addAll()/retainAll() D: ...
分类:
其他好文 时间:
2020-02-11 16:17:30
阅读次数:
59
Windows下php调试环境 环境:Windows7+phpstudy(Apache+php7.1) 1、xdebug的安装配置 phpinfo看一下php版本,架构(32还是64位),扩展是vc几和线程安全(ts)版本还是非线程安全版本(nts)。 我这里: 之后到官网下载xdebug的dll: ...
1.String和StringBuffer的区别: String是不可变的,String每次生成一个对象的时候都会开一一块新空间,增加内存开销。例如 public class TestString { public static void main(String[] args) { String s ...
分类:
其他好文 时间:
2020-02-10 13:30:29
阅读次数:
53
1. 背景 1.1 static修饰类变量、方法、方法块。 public + static = 该变量任何类都可以直接访问,而且无需初始化类,直接使用 类名.static 变量 1.2 多个线程同时对共享变量进行读写时,很有可能会出现并发问题.(存在共享数据时才需要考虑线程安全) 1.3 publi ...
分类:
编程语言 时间:
2020-02-10 09:57:33
阅读次数:
146