首页 新闻 赞助 找找看

并发问题应不应该时时刻刻考虑

0
悬赏园豆:10 [已解决问题] 解决于 2023-06-07 16:14

每时每刻都要考虑并发吗

在写代码过程中经常会碰见要改变A的属性,或添加一个A。之前要进行一些判断。符合条件才进行下一步操作

//1.条件检查

//2.条件符合,进行下一步操作

代码没有加锁,sql语句也是一般sql。

当用户A,和B都调用了这个接口。都通过了1,都可以执行下一步。但是A执行完成,此时再请求的1.的条件就不会符合,但是B已经提前检查完毕,也可以进行第二步操作。这样就会出问题。

因为写的是管理系统,和公司内部使用的系统,不会有高并发。看了好几个同事,都是这样写的。

是不是当一些功能在没有高并发的情况(可以确定以后也不会),能正常运作,是不是可以不用去考虑并发问题。在这些地方加上关于并发的处理,领导可能还觉得你效率低,不加也不会出错。

15年的夏天的主页 15年的夏天 | 初学一级 | 园豆:47
提问于:2023-05-22 17:39
< >
分享
最佳答案
0

需要考虑并发, 但是不需要那么严格。

收获园豆:4
Tom.汤 | 老鸟四级 |园豆:3026 | 2023-05-24 08:28
其他回答(5)
0

1.为了提高开发效率,条件校验的逻辑暂时可以不写,但是操作日志应该加一下,加了日志之后有助于持续分析哪些操作有高并发的风险,后续有问题的字段需要加条件判断再更新
2.对于关键字段的处理,例如从经验来看,库存数量和金额字段,还是要先判断条件再进行下一步操作,偷懒是不行的

收获园豆:3
lanedm | 园豆:2378 (老鸟四级) | 2023-05-22 18:00
0

在编写代码时,考虑并发是一个重要的方面,特别是对于需要共享资源或者有多个用户同时访问的情况。即使你目前的系统没有高并发的情况,但是在编写代码时考虑并发可以帮助你构建更加健壮和可扩展的系统。下面是一些原因:

未来的需求变化:尽管目前没有高并发的情况,但未来的需求可能会改变。当公司扩大规模、用户增多或者系统进行扩展时,可能会面临并发访问的挑战。如果你提前考虑并发,可以减少未来需要重构代码的可能性。

代码复用和维护:编写具有良好并发处理的代码可以增加代码的复用性和可维护性。当你编写的代码可以处理并发情况时,其他人在引入新功能或修改现有功能时可以更容易地理解和维护代码。

错误和数据一致性:如果不考虑并发,当多个用户同时操作相同的数据时,可能会导致数据不一致或出现错误的结果。这可能会对你的系统的正确性和可靠性产生负面影响。

最佳实践:并发处理是软件开发的一项基本原则之一,被广泛接受为最佳实践。即使在当前情况下,了解和应用并发处理技术也有助于提高你的编程技能和代码质量。

虽然你可能会感到加入并发处理会降低你的效率,但考虑到以上原因,建议在代码中正确地处理并发情况。这可以避免潜在的问题,并为未来的需求变化提供更好的准备。

Technologyforgood | 园豆:5239 (大侠五级) | 2023-05-22 23:24

还用AI来回答 ,真的是……

支持(0) 反对(0) 需要格局 | 园豆:2145 (老鸟四级) | 2023-05-26 17:46
0

1.风险可能性评估。出现风险的可能性很小,出问题后手动处理即可
2.风险严重性评估。出风险后,影响非常严重,如:账务错了,库存问题,等等等等,这种就必须要考虑并发
3.系统性能的平衡。在1、2两点评估后,可以不考虑并发时,事务越小越好,不考虑并发的性能肯定比考虑并发要好。风险很小、风险后果也很小,如果还非要去考虑并发,就可能会导致每次操作耗时的增加,并且可能导致系统性能的降低,得不偿失。

二洋 | 园豆:267 (菜鸟二级) | 2023-05-24 16:54
0

你不用考虑的。90%的程序员写的代码都是单线程的…… 当写到并发的时候,再考虑这个问题

收获园豆:3
需要格局 | 园豆:2145 (老鸟四级) | 2023-05-25 16:27
0

chatgpt回答:

在研发编写代码的过程中,如果代码需要处理多个任务或多个用户请求,那么就需要考虑并发问题。并发问题指的是多个任务或者请求同时发生,导致数据竞争、死锁、性能问题等等。为了避免这些问题,需要在代码编写过程中考虑并发性,例如使用锁、线程池、消息队列等技术来处理并发问题。同时,也需要对并发编程的相关知识有一定的了解和掌握,以便更好地处理并发问题。
ycyzharry | 园豆:25639 (高人七级) | 2023-05-27 02:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册