手撸面试题

怎么理解多线程的宏观并行,微观串行?

多线程实际在运行的时候,是通过CPU的时间片来决定的,CPU的时间片是一个很短的时间段(0.0001)秒,两个线程在执行的时候是通过CPU的上下文切换,由于这个切换的时间间隔很短,看起来就是两个线程全程是并行的,让外界看起来是完全无感知。实际在很短的时间是有切换,所以微观有切换还是串行。

事务的特性(ACID)

表示一个事务内的所有操作是一个整体,要么全部成功,要么全部失败

表示一个事务内有一个操作失败时,所有的更改过的数据都必须回滚到修改前状态

  • Isolation(隔离性)
    • 脏读:在读取数据的时候,另外一个事务还没有提交,读取事务的时候也能读到。
    • 可重复读:读取数据时,能读到事务提交之前和提交之后的结果。
    • 幻读:读取数据时,读到的事务提交之的正确的数据,但是插入时会失败,是因为本地读的事务没有提交导致。解决方法:提交本地读的事务。

事务查看数据操作时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。

持久性事务完成之后,它对于系统的影响是永久性的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值