各位公司中的后端项目要求代码必须线程安全吗?
如果需要引入一个线程不安全的第三方依赖,会如何统一处理呢?
以及有人来 review 第三方依赖是否线程安全吗?
(语言不限)
1
xuanbg 2018-09-20 12:01:58 +08:00
异步的业务涉及到的代码必须线程安全,同步的建议但不做要求。
如果必须要引入线程不安全的第三方依赖,那你理论上除了同步还是同步。 |
2
AngelCriss 2018-09-20 12:03:49 +08:00 via Android
这个是我自己的要求。。
|
3
myzWILLmake 2018-09-20 12:18:30 +08:00 2
多线程交互业务要是不保证线程安全,这个你敢上线么...
|
4
xxkd5851768 2018-09-20 12:31:45 +08:00
@AngelCriss 我们都一样。。。
|
5
yulon 2018-09-20 12:35:54 +08:00
如果依赖内部有多线程,那就打死依赖的作者;如果依赖内部是单线程,那就自己做线程安全呗=。=
|
6
yanaraika 2018-09-20 12:39:02 +08:00
actor model
|
7
neoblackcap 2018-09-20 12:53:32 +08:00 1
库没有说,默认线程不安全,自己 review 或者加锁
|
8
yidinghe 2018-09-20 12:56:34 +08:00
做不到线程安全的话难道不会出 BUG ?
|
9
zwh2698 2018-09-20 13:01:49 +08:00 1
请在网上找一份华为安全编程规范,其中不但有要求,并且有解决方案
|
10
ctrlaltdeletel OP @yidinghe 所以就有很多限制。比如代码里完全避免使用多线程,服务也是按类似 pre-fork 的方式来跑。
|
11
ctrlaltdeletel OP @zwh2698 有点意思,去搜搜参考下,多谢
|
12
janxin 2018-09-20 14:04:22 +08:00 via iPhone
出 bug 你都不一定好找位置…
|
13
wizardforcel 2018-09-20 14:21:04 +08:00
后端避不开多线程,你不手动创建,但是服务器会创建。除非是 node 这种明确了单线程异步的环境,但这种很少很少。
我一直是默认所有对象是线程不安全的,除非文档里有特殊说明。该加锁就加锁也没啥。 |