常见问题理解(一)

一、同步与异步,阻塞与非阻塞的理解:

    同步:程序在调用一个方法时,这个方法内部会一直计算返回值,直到得出结果才能返回。

    异步:程序在调用一个方法时,这个方法可以把计算交给其他方法执行,而自己可以在得出返回值之前返回。

举个例子:

    在web开发中,用户注册的短信验证码发送,可以通过celery来执行发短信过程,而本方法可以立即返回。


    阻塞:程序在调用方法时,方法所在的线程被挂起,一直在等待方法的执行结果,方法所在的线程被挂起,才能继续往下执行。

    非阻塞:程序在调用方法时,方法所在的线程不会被挂起,会继续执行。


二、事务的特性

    事务时并发控制单位,是用户定义的一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。

    事务有四个特性:

    1.原子性:整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性

    2.一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态。

    3. 隔离性:一个事务所做的修改在最终提交以前,对其他事务是不可见的。

    4.持续性:一旦事务提交,则其所做的修改会永久保存到数据库。

    对数据库的数据进行批量操作或者连表操作时,为了保证数据库的一致性和正确性,我们需要添加事务管理机制进行管理。

    当对数据库的数据操作失败时,事务管理可以很好保证所有的数据回滚到原来的数据,如果操作成功,则保证所有需要更新的数据持久化。

   

注意
  1. 表的引擎类型必须是innodb类型才可以使用事务,innodb是mysql表的默认引擎
  2. python的mysql扩展中执行修改数据的命令会自动触发事务,包括insert、update、delete,需要commit提交。


三、面向对象的三大特性

    1.封装:将一些方法或者属性封装在一起。

    2.继承:父类拥有的方法,子类可继承父类的方法。

    3.多态:子类可以拥有自己特有的方法,也可以调用父类的方法。


四、电话号码匹配的正则表达式

^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值