V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
guyeuro
V2EX  ›  问与答

Java 里线程有没有 c 语言里线程的 join 和 detach 的概念?

  •  
  •   guyeuro · 2017-09-01 10:58:08 +08:00 · 1686 次点击
    这是一个创建于 2431 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是不是 java 里的线程是默认 detached ?

    4 条回复    2017-09-01 12:03:01 +08:00
    XinLake
        1
    XinLake  
       2017-09-01 11:23:30 +08:00
    线程的解释权归操作系统,和编程语言没关系吧。
    那个 join 和 detah 是 POSIX 标准的,放到 windows 上不一定这样了。
    guyeuro
        2
    guyeuro  
    OP
       2017-09-01 11:28:38 +08:00
    @XinLake 我意思有没有类似的概念
    譬如在 c/c++里,在主线程里 new 了一个线程后,如果是 joinable,当前线程还要等待 new 的线程返回,否则就会造成“僵尸”线程,new 的线程执行完后资源不会回收,而 detached 的话,当前线程不用等待 new 的线程返回,两者完全解耦
    XinLake
        3
    XinLake  
       2017-09-01 12:00:10 +08:00
    @guyeuro
    Windows SDK C/C++ 编程相关的线程 API 说明里,没看到相关的说明或注意事项。
    POSIX 不了解,^^。
    shineMicroxy
        4
    shineMicroxy  
       2017-09-01 12:03:01 +08:00
    不了解 c 的 detach,你说的“ new 的线程执行完后资源不会回收”,Java 只会在子线程持有主线程的引用的情况下才会发生(比如内部线程引用了外部一个对象),否则子线程是否执行完不会影响主线程资源回收
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3572 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:32 · PVG 12:32 · LAX 21:32 · JFK 00:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.