MySQL 锁 锁概述 锁是计算机协调多个进程或者线程并发访问某一资源的机制(避免争抢) 锁分类 从对数据操作的粒度分: 表锁: 操作时, 锁定整张表 行锁: 操作时, 锁定当前操作行 从对数据操作的类型分: 读锁(共享锁):正对同一份数据, 多个读操作可以同时进行而互不影响 写锁(排它锁):当前操作没完成之前, 会阻塞其他读写操作 互斥锁 互斥锁特点: 一次只能一个线程拥有互斥锁, 其他 2020-04-20 #MySQL
is 和 == 的区别 都是对象的比较 is 比较的是内存地址 12345>>>1 is 1True>>>[1, 2] is [1, 2]False# 因为 id([1, 2]) 都不同 == 是两个对象的__eq__方法返回的值进行比较 因此可以重载__eq__来实现不同对象的比较 123456789class NewInt(int): def __eq__(self, ot 2020-04-15 #Python
Python GIL GIL是什么? GIL(全局解释器锁)是 Global Interpreter Lock 的缩写, 其作用是, 在Python使用多线程的时候, 所有的线程去抢一个锁, 抢到了锁的线程就可以获得CPU时间。 使用GIL的主要目的是为了简化Python解释器的实现(Python中的标准库里, 如无声明, 大部分库都不是并发安全的), 而缺点就是无法充分的利用机器的多核 Python中如何使用多个C 2020-04-15 #Python
内存管理与垃圾回收机制 内存管理与垃圾回收机制 Python 的内存管理机制及调优手段? 内存管理机制:引用计数、垃圾回收、内存池。 引用计数: 引用计数是一种非常高效的内存管理手段, 当一个 Python 对象被引用时其引用计数增加 1, 当其不再被一个变量引用时则计数减 1. 当引用计数等于 0 时对象被删除。 垃圾回收 : 1.引用计数 引用计数也是一种垃圾收集机制, 而且也是一种最直观, 最简单的垃圾收集技 2020-04-15 #Python
协程和线程 迭代器 是一种可以遍历的对象,可以作用于next()函数 生成器 Python中一边循环一边计算的机制称为生成器 比如生成器函数(yield ) 装饰器 可以使用装饰器,装饰该函数,在不改变原函数的情况下,增加功能 进程,线程和协程 进程在操作系统上运行的一个程序, 操作系统以进程为单位分配资源, 每个进程都有自己的地址空间、内存、数据栈以及其他用于跟踪进程执行的辅助数据, 操作系统管理所有进 2020-04-15 #Python
Python 一些题目 统计频次 小内存处理大文件 默认参数问题 变量作用域规则 统计频次 如何统计一篇文章中单词的出现次数? 使用 Counter, 例如: 12345678910In [1]: a = "hello world hello world world hello this that" 2020-04-15 #Python
闭包 闭包不是Python独有的概念, 闭包是指在函数中可以(嵌套)定义另一个函数时, 如果内部的函数引用了外部的函数的变量, 则可能产生闭包。运行时, 一旦外部的 函数被执行, 一个闭包就形成了, 闭包中包含了内部函数的代码, 以及所需外部函数中的变量的引用。 也就是说, 在函数中声明另一个函数, 里面的函数如果引用了外层函数中的变量, 那么就形成了一个闭包。例如: 123456789In [1]: 2020-04-15 #Python
Redis 一些题目 数据结构 基本类型 string 字符串 list 列表 set 集合 zset 有序集合 hash 哈希表 String:如果存储数字的话,是用int类型的编码;如果存储非数字,小于等于39字节的字符串,是embstr;大于39个字节,则是raw编码。 List:如果列表的元素个数小于512个,列表每个元素的值都小于64字节(默认),使用ziplist编码,否则使用linkedlist编码 2020-04-14 #Redis
git手册 本地项目和远程关联 12345git initgit remote add origin https://xxx/xx.gitgit pull --rebase origin master 添加多个仓库并且提交,拉取代码 1234567891011// 添加一个 remote=origin的仓库地址git remote add origin https://github.com/xx.git// 2020-03-04 #git手册