一、滴滴国际化支付
1、一面
1.php的内存模型
php内存管理 |
php是使用链来管理的。定义一个数组指针,每次通过数组指针指向所请求的内存空间。 在单个请求初始化的时候,内核会初始化free_buckets列表,其是一个数组指针,通过存储的是双向链表的头尾指针,用来达到对内存的管理。 ![]() |
2.mysql的锁,怎么检测到死锁的,怎么处理死锁?
cnblogs.com/111testing/p/11371236.html
【死锁定义】
相互等待对方资源,最后形成环路造成的。
【innodb的死锁检测】
(1)innodb_lock_wait_timeout,超时回滚
在两个事务相互等待时,当一个等待时间超过设置的某一阀值时,对其中一个事务进行回滚,另一个事务就能继续执行。这种方法简单有效,在innodb中,参数innodb_lock_wait_timeout用来设置超时时间。
评价:检测死锁太被动!
(2)wait-for graph,加锁失败则触发检测有向图是否出现环路,出现环路就是死锁!
主动进行死锁检测,每当加锁请求无法立即满足需要并进入等待时,wait-for graph算法会被触发。
【死锁成因】
1)不同表相同记录