V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ctrlaltdeletel
V2EX  ›  程序员

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

  •  1
     
  •   ctrlaltdeletel ·
    cadl · 2018-09-20 11:53:26 +08:00 · 3242 次点击
    这是一个创建于 2238 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    (语言不限)

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

    我一直是默认所有对象是线程不安全的,除非文档里有特殊说明。该加锁就加锁也没啥。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:56 · PVG 18:56 · LAX 02:56 · JFK 05:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.