zippera
V2EX  ›  问与答

请问这里主线程阻塞等待多个子线程执行完,为什么用这种方式?

  •  
  •   zippera · Jul 29, 2015 · 2585 views
    This topic created in 4120 days ago, the information mentioned may be changed or developed.
    看到 fastcgi C 多线程的一个例子,main 里开启了多个线程,然后主线程中没有使用 pthread_join 来阻塞获取所有子线程的退出状态,而是调用了一次线程工作函数,类似这样:

    pthread_t id[THREAD_COUNT];

    for (i = 1; i < THREAD_COUNT; i++)
    pthread_create(&id[i], NULL, doit, (void*)i);

    doit(0);

    完整代码在这里:
    www.fastcgi.com/devkit/examples/threaded.c
    4 replies  •  2015-08-03 00:53:07 +08:00
    zippera
    zippera
    OP
    Jul 30, 2015
    1
    自己顶
    h4x3rotab
    h4x3rotab
    Jul 30, 2015
    2
    自己也算一个线程,开了THREAD_COUNT-1个线程,总数刚好
    zippera
    zippera
    OP
    Jul 30, 2015
    3
    @h4x3rotab 谢谢,这样使用相对于 pthread_join 有什么好处呢?
    h4x3rotab
    h4x3rotab
    Aug 3, 2015
    4
    @zippera 少开一个线程,本质上区别并不大,对于大量创建删除线程的情况下,可以减少一点点性能损失,但是基本可以忽略,极端情况下可以这么用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1604 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:25 · PVG 22:25 · LAX 06:25 · JFK 09:25
    ♥ Do have faith in what you're doing.