给线程起有意义的名字,这样方便找Bug 缩小同步范围,从而减少锁的争用,例如对于 synchronized,应该尽量使用同步块而不是同步方法 多用同步工具少用 wait() 和 notify()。首先,CountDownLatch, CyclicBarrier, Semaphore 和Exchang ...
分类:
编程语言 时间:
2019-07-03 13:59:22
阅读次数:
104
C++性能榨汁机之伪共享 来源 http://irootlee.com/juicer_false_sharing/ 前言 在多核并发编程中,如果将互斥锁的争用比作“性能杀手”的话,那么伪共享则相当于“性能刺客”。“杀手”与“刺客”的区别在于杀手是可见的,遇到杀手时我们可以选择战斗、逃跑、绕路、求饶等 ...
分类:
编程语言 时间:
2019-06-24 12:29:23
阅读次数:
115
非阻塞同步:基于冲突检测的乐观并发策略,通俗讲就是先进行操作,如果没有其他线程争用共享数据,那操作就成功了,如果争用数据有冲突那就采用其他的补偿措施(最常见的就是不断重试直到成功),这种乐观的并发策略使得很多线程不需要因为竞争失败直接挂起,这种同步措施称为非阻塞同步。下面我们就从硬件原语开始了解非阻 ...
分类:
编程语言 时间:
2019-06-15 17:38:16
阅读次数:
141
产品设计,设计产品。文字没有变,含义确截然不同。 产品设计讲求的是自上而下,由顶及底的设计。而设计产品是实现过程,也就是我们常接触的项目阶段。 产品开发常规的做法,收集需求(内部、外部),需求提炼,产品概要设计,产品方案设计,详细设计,测试,试产/试运行,上线/上市。 常规做法必然没有错,但在执行中 ...
分类:
其他好文 时间:
2019-06-05 09:32:00
阅读次数:
88
1、 导致慢 SQL 的原因 在遇到慢 SQL 情况时,不能简单的把原因归结为 SQL 编写问题(虽然这是最常见的因素),实际上导致慢 SQL 有很多因素,甚至包括硬件和 mysql 本身的 bug。根据出现的概率从大到小,罗列如下: SQL编写问题 锁 业务实例相互干绕对 IO/CPU 资源争用 ...
分类:
数据库 时间:
2019-05-25 20:06:37
阅读次数:
149
封锁 封锁粒度 MySQL中提供了两种封锁粒度: 行级锁 和 表级锁 。 应该尽量的只锁定需要修改的那部分数据,而不是所有的资源,锁定的数据量越少,发生锁争用的可能性就越小,系统的并发程度就越高。 加锁需要消耗资源,锁的各种操作(包括锁的获取,释放锁, ...
分类:
数据库 时间:
2019-04-30 21:33:15
阅读次数:
138
概述 定义: 锁是计算机协调多个进程或者线程并发访问某一资源的机制 在数据库中,除传统的计算资源(如CPU,RAM,IO等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发 访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度 ...
分类:
数据库 时间:
2019-04-20 17:04:50
阅读次数:
210
以太网信道被占用情况: 争用期长度为2τ,是端到端传播时延的两倍 帧长为L(bit) 数据发送率为C(bps) 帧的发送时间为L/C=T0(s) 以太网拓展方式: 在物理层把以太网扩展 在数据链路层吧以太网扩展 在网络层看来仍然是一个网络 网桥的优点: 扩大了物理范围 提高了可靠性 可互连不同物理层 ...
分类:
其他好文 时间:
2019-04-08 18:46:56
阅读次数:
135
1、mysql锁概述 BDB被InnoDB代替了,MyIsam在8.0也被抛弃了 2、MyIsam表锁 MyIsam存储引擎只支持表锁。 查看表锁争用情况。 show status like 'table%'; 其中,table_locks_waited 如果值较大,证明锁争用明显。 如图,当对My ...
分类:
数据库 时间:
2019-04-08 18:39:10
阅读次数:
185
环境准备 1.在虚拟机linux上面安装好oracle环境。 2.启动Oracle 3.开启一个实例 4.开启监听 5.运程链接PL/SQL连接Oracle 导致性能问题的可能原因 1.表没有正确的索引 --错误的执行计划 2.表没有及时的分析 --错误的执行计划 3.热块 --数据块的争用 4.锁 ...
分类:
数据库 时间:
2019-02-26 15:12:54
阅读次数:
212