nodejs 关于并发安全的问题

nodejs里有锁的概念吗?比如扣库存这个场景,库存只有1了,两个用户同时请求,如何保证只有一个成功?

阅读 5.9k
3 个回答

nodejs的js执行环境是单线程的,所以你写的js代码不会存在数据竞争,竞态条件等安全问题。
对于其他环境中的数据仍然有可能有这些问题,对于数据库可以用事务+锁来解决;
对于redis,可以用队列来解决,因为连接是单线程的,所以当前线程总能所见即所得。

扣库存? 这是数据库事务控制的啊,给数据加锁。

这个很node无关,是数据库的并发问题,这个需要给数据库加锁

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题