
多线程
ademen
这个作者很懒,什么都没留下…
展开
-
5个经典的同步问题,设计模式(生产者消费者。。。)
5个经典的同步问题 如何用代码实现 https://blog.youkuaiyun.com/Naruto_ahu/article/details/8672376 1. 生产者-消费者问题 2.哲学家就餐问题 [解法] 服务生解法 一个简单的解法是引入一个餐厅服务生,哲学家必须经过他的允许才能拿起餐叉。因为服务生知道哪只餐叉正在使用,所以他能够作出判断避免死锁。 [解法] 资源分级解法 ...原创 2018-09-01 14:14:06 · 954 阅读 · 0 评论 -
备份用。。。高并发业务的应用场景和设计理念
1。应用场景 春运火车票,微信红包,电商的秒杀,抢购。 2。互联网系统的应用架构基础分析 防火墙:防止网络上的病毒攻击和其他攻...原创 2018-09-12 23:27:57 · 244 阅读 · 0 评论 -
悲观锁和乐观锁
悲观锁:利用db内部机制提供的锁的方法,也就是对更新的数据加锁。 并发期间,如果一个事务持有了DB记录的锁,那其他的线程就会被挂起,将不能再对数据进行更新,只能等待资源的释放。也称为阻塞锁, 乐观锁(非阻塞锁):不会阻塞其他进程的并发直行。所以不会引发线程的频繁挂起和恢复。使用的是CAS原理。 CAS原理的具体实现:表中有一个版本字段,第一次读的时候,获取到这个字段。处理完业务逻辑开始更...原创 2018-09-13 11:27:03 · 124 阅读 · 0 评论 -
CAS原理与JAVA
一、什么是CAS? 在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一个线程更新,则写入将失败。 操作结果必须说明是否进行替换; 这可以通过一...转载 2018-09-13 14:30:33 · 191 阅读 · 0 评论