1. 如何设计一个高并发的系统 ① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化 ② 使用缓存,尽量减少数据库 IO ③ 分布式数据库、分布式缓存 ④ 服务器的负载均衡 2. 锁的优化策略 ① 读写分离 ② 分段加锁 ③ 减少锁持有的时间 ④ 多个线程尽量以相同的顺序去获取资源 ...
分类:
数据库 时间:
2018-11-29 23:20:20
阅读次数:
247
管道: Pipe Conn1,conn2 = Pipe() 数据共享: M = Manager() Dic = m.dict({‘name’:sbalex}) 数据安全的问题 加锁 进程池 ***** Map:异步提交任务,参数是可迭代对象,自带close + join Apply :同步提交任务, ...
分类:
编程语言 时间:
2018-11-29 21:19:05
阅读次数:
211
1、不要去解锁一个未被加锁的mutex锁; 2、不要一个线程中加锁而在另一个线程中解锁; 3、使用mutex锁用于保护临界资源,严格按照“加锁-->写入/读取临界资源-->解锁”的流程执行,对于线程间同步的需求使用条件变量或信号量实现。 1. https://blog.csdn.net/luckya ...
分类:
其他好文 时间:
2018-11-29 12:29:14
阅读次数:
137
串行 你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。是串行,必须执行完一个执行一个。 并发 你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发,交叉执行。 并行 你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行,同时 ...
分类:
编程语言 时间:
2018-11-27 20:51:10
阅读次数:
192
Python内置了很多函数,可以直接调用。Python内置的函数可以通过官方文档查看。也可以通过help()查看帮助信息。函数名是指向函数对象的引用,把函数名赋给变量,相当于给函数起了别名。 1. 定义函数 使用def 函数名(参数):语句定义函数,在缩进块中编写函数体,返回值用return语句返回 ...
分类:
编程语言 时间:
2018-11-27 17:02:41
阅读次数:
260
背景 在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实 ...
分类:
其他好文 时间:
2018-11-26 20:07:53
阅读次数:
145
http //https http 普通的http协议 他容易被攻击 经常被插入广告 (dns污染); https 安全 加锁 128位安全级别 谷歌 推崇消灭=== http https 这东西不是要花钱吗? == 需要申请 但是 不一定要花钱 申请的是一个身份的证书 第三方权威机构签发的 来证明 ...
分类:
Web程序 时间:
2018-11-26 02:08:41
阅读次数:
197
DBUtils是Python的一个用于实现数据库连接池的模块。 如果没有连接池,使用pymysql来连接数据库时,单线程应用完全没有问题,但如果涉及到多线程应用那么就需要加锁,一旦加锁那么连接势必就会排队等待,当请求比较多时,性能就会降低了。 加锁: 1 import pymysql 2 impor ...
分类:
数据库 时间:
2018-11-23 16:07:50
阅读次数:
186
FUNCTION request_lock(p_lock_name IN VARCHAR2) RETURN BOOLEAN IS l_lock_name VARCHAR2(128); l_lock_ret INTEGER; l_ret_val BOOLEAN := TRUE; l_lock_hand... ...
分类:
数据库 时间:
2018-11-23 14:05:49
阅读次数:
181
读锁:LOCK in SHARE MODE 写锁:for UPDATE 行锁 (锁住某行数据) SELECT name FROM t_goods_info where code = 'huawei' for UPDATE; 页锁 (锁住某些数据) SELECT NAME FROM t_goods_i ...
分类:
数据库 时间:
2018-11-22 18:59:29
阅读次数:
224