各位公司中的后端项目要求代码必须线程安全吗?

2018-09-20 11:53:26 +08:00
 ctrlaltdeletel

各位公司中的后端项目要求代码必须线程安全吗?

如果需要引入一个线程不安全的第三方依赖,会如何统一处理呢?

以及有人来 review 第三方依赖是否线程安全吗?

(语言不限)

3130 次点击
所在节点    程序员
13 条回复
xuanbg
2018-09-20 12:01:58 +08:00
异步的业务涉及到的代码必须线程安全,同步的建议但不做要求。
如果必须要引入线程不安全的第三方依赖,那你理论上除了同步还是同步。
AngelCriss
2018-09-20 12:03:49 +08:00
这个是我自己的要求。。
myzWILLmake
2018-09-20 12:18:30 +08:00
多线程交互业务要是不保证线程安全,这个你敢上线么...
xxkd5851768
2018-09-20 12:31:45 +08:00
@AngelCriss 我们都一样。。。
yulon
2018-09-20 12:35:54 +08:00
如果依赖内部有多线程,那就打死依赖的作者;如果依赖内部是单线程,那就自己做线程安全呗=。=
yanaraika
2018-09-20 12:39:02 +08:00
actor model
neoblackcap
2018-09-20 12:53:32 +08:00
库没有说,默认线程不安全,自己 review 或者加锁
yidinghe
2018-09-20 12:56:34 +08:00
做不到线程安全的话难道不会出 BUG ?
zwh2698
2018-09-20 13:01:49 +08:00
请在网上找一份华为安全编程规范,其中不但有要求,并且有解决方案
ctrlaltdeletel
2018-09-20 13:21:01 +08:00
@yidinghe 所以就有很多限制。比如代码里完全避免使用多线程,服务也是按类似 pre-fork 的方式来跑。
ctrlaltdeletel
2018-09-20 13:22:26 +08:00
@zwh2698 有点意思,去搜搜参考下,多谢
janxin
2018-09-20 14:04:22 +08:00
出 bug 你都不一定好找位置…
wizardforcel
2018-09-20 14:21:04 +08:00
后端避不开多线程,你不手动创建,但是服务器会创建。除非是 node 这种明确了单线程异步的环境,但这种很少很少。

我一直是默认所有对象是线程不安全的,除非文档里有特殊说明。该加锁就加锁也没啥。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/491134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX