04 2020 档案

摘要:一、背景 在使用subprocess.Popen调用系统命令时,如果配置 close_fds=True ,命令执行耗时会显著加长。 首先,我们看下一个普通的 命令,耗时只需要0.002秒。 然后,subprocess.Popen,配置 ,执行ls命令,耗时需要整整0.06秒(0.002秒的30倍)。 阅读全文
posted @ 2020-04-30 19:18 cnwenf 阅读(2729) 评论(0) 推荐(0)
摘要:不同步的情况 互斥量(mutex) Lock 通过Lock实现多线程同步 使用 和`mutex.release with`来替代。 Lock是不允许递归的,一个线程多次申请,将出现死锁。 RLock(递归锁) Lock\RLock这两种琐的主要区别是: RLock允许在同一线程中被多次acquire 阅读全文
posted @ 2020-04-27 21:47 cnwenf 阅读(153) 评论(0) 推荐(0)
摘要:慢查询 这里的执行时间不包括IO操作,比如与客户端通信,发送回复等等,而只是实际执行命令所需的时间(这是唯一在命令执行过程中线程被阻塞且不能同时处理其他请求的阶段)。 可以用两个参数配置慢查询日志: 1. _slowlog log slower than_告诉Redis命令的执行时间超过多少微秒将会 阅读全文
posted @ 2020-04-23 13:41 cnwenf 阅读(223) 评论(0) 推荐(0)
摘要:1. 乐观锁和悲观锁 乐观锁和悲观锁,是从 锁的申请时间 进行区分。 悲观锁 先申请锁,再执行业务,更新数据库,最后释放锁。 “悲观”的认为所有的操作都会导致并发问题,所以先获取锁成功再进行业务操作。 常用 操作来实现悲观锁。 当数据库执行select … for update时会获取被select 阅读全文
posted @ 2020-04-22 20:23 cnwenf 阅读(234) 评论(0) 推荐(0)
摘要:四大特性(ACID) 1. 原子性( A tomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 2. 一致性( C onsistency) 一 阅读全文
posted @ 2020-04-22 13:43 cnwenf 阅读(147) 评论(0) 推荐(0)