python协程的调度
1、协程调度完全在用户空间进行。只能从显式声明的可调度位置调度。在Python中,它被用作生成器迭代器,由生成器迭代器函数返回。2、任何具有yield表达式的普通函数,都将被解释器处理成生成器迭代器函数,执行后返回生成器迭代器。实例def gen(): yield 1 # do sth yield 2 # d...
2024-01-10mysql插入意向锁的使用
1、插入意向锁是Gap锁,不是意向锁,是insert操作产生的。当多个事务同时将不同的数据写入同一个索引间隙时,不需要等待其他事务完成,也不会发生锁等待。假定有一个记录索引包含键值4和7,不同的事务分别插入5和6,每个事务都会产生一个插入意向锁,加到4-7之间,得到插入行上的排他锁,但不...
2024-01-10mysql临键锁的使用
1、默认情况下,innodb使用临键锁锁定记录。select ... for update2、当查询索引包含唯一属性时,临键锁将被优化并降级为记录锁,即只锁定索引本身,而不是范围。3、不同场景下的临键锁会退化。实例事务1 start transaction;select SLEEP(4);select * from test where age=22 for update;select * from test where age>2...
2024-01-10mysql间隙锁的用法
区间锁,只锁一个索引区间(开区间,不包括双端端点)1、在索引记录之间的间隙中加锁,或在索引记录之前或之后加锁,不包括索引记录本身。2、间隙锁可用于防止幻读,以确保索引之间不会插入数据。实例session 1:start transaction ;select * from news where number=4 for update ; session 2:start transact...
2024-01-10pythonprint的多种使用
print函数用于打印和输出代码内容,本篇我们将对输出的三种不同形式带来详细介绍。1、print()函数输出的内容:数字,字符串,含有运算符的表达式。#数字print(520)print(98.5)#字符串print('hello world')print(helloworld)#注意没有引号的时候此时输出的某个变量而不是字符串#(这里输出的helloworld这个变量,这...
2024-01-10python网页中下拉框的操作
1、只要是第一次打开页面可以加载的元素,就可以通过元素定位来定位和操作。2、如果需要先点击下拉框对象再加载选项,必须先点击脚本,等待选项元素加载。实例1.实例化select对象,需要先导入select包element:表示的是select标签的元素对象,不要搞成选项的元素对象select =Select(element)2.执行选择...
2024-01-10JavaScript组合继承的实现
1、组合继承综合了原型链和盗用构造函数,将两者的优点集中了起来。既可以把方法定义在原型上以实现重用,又可以让每个实例都有自己的属性。2、过程中调用两次父类构造函数。一次是子构造函数使用apply/call调用的父构造函数,另一次是子类使用原型继承时,父类实例赋给子类的原型对象时调用...
2024-01-10JavaScript如何盗用构造函数
1、由于子类构造函数的原型对象跟父类无关,所以子类实例无法调用父类的原型对象的属性或方法。2、只能继承父类构造函数的属性或方法。父类构造函数中的属性或方法将会在每个子类实例中创建一份,显得很繁琐。实例function A(name,age,sex){ this.name = name; this.age = age; this.sex = s...
2024-01-10JavaScript原型链继承的注意点
1、引用属性问题,在原型对象中添加引用值属性,虽然我们通常会把属性都放在构造函数中,但在原型继承上又会出现。2、子类在实例化时不能给父类构造函数传参。实例function A(){ this.arrs=[1,2,3]};function B(){}B.prototype = new A();let c1 = new B();let c2 = new B();console.log(c1.arrs); //[1,2,3]...
2024-01-10JavaScript原型添加存在的属性
1、在实例中添加一个原型中已存在的属性或方法,该属性或方法会屏蔽原型中的同名属性或方法。2、在访问该属性或方法时,首先返回的是实例中的属性或方法。实例function Person(){}Person.prototype.name = "Default Name";let p1 = new Person();let p2 = new Person();p1.name = "New Name";console.log(p1.name); ...
2024-01-10