并发问题
2016-09-26 17:50:43 0 举报
并发问题是指在多线程或多进程环境下,多个任务同时访问共享资源时可能导致的数据不一致、死锁等问题。这些问题通常发生在对共享资源的读写操作中,如数据库连接、文件句柄等。为了解决并发问题,可以采用同步机制(如互斥锁、信号量等)来保证同一时刻只有一个任务能够访问共享资源,从而避免数据竞争和死锁。然而,过度使用同步机制可能会导致性能下降,因此需要在保证数据一致性和系统性能之间找到一个平衡点。
作者其他创作
大纲/内容
时间线
Request 2
购物车中添加商品A
commit; //提交事务
并发添加购物车
是
begin transaction
查询购物车
锁住UserId
insert商品A
查询购物车中的商品
Request 1
购物车是否为空
返回错误信息
结束
select A from cart; //查询A是否已经存在
尝试获得锁失败,返回
insert A into cart; //如果不存在则insert
begin transaction; //开启事务
清空购物车
update商品A数量
创建订单
if(exists){ update cart set quantity=xxx where item=A}else{ insert A into cart; //如果不存在则insert}
否
是否有商品A
查询购物车现有商品
释放锁
订单状态转移
属性
开始
0 条评论
下一页