gpt4 book ai didi

c++ - 为什么我要启动一个线程 "suspended"?

转载 作者:IT老高 更新时间:2023-10-28 22:32:16 27 4
gpt4 key购买 nike

Windows 和 Solaris 线程 API 都允许在“暂停”状态下创建线程。线程仅在稍后“恢复”时才真正开始。我习惯了没有这个概念的 POSIX 线程,我正在努力理解它的动机。谁能建议为什么创建一个“暂停”线程会很有用?

这是一个简单的说明性示例。 WinAPI 允许我这样做:

t = CreateThread(NULL,0,func,NULL,CREATE_SUSPENDED,NULL);
// A. Thread not running, so do... something here?
ResumeThread(t);
// B. Thread running, so do something else.

(更简单的)POSIX 等效项似乎是:

// A. Thread not running, so do... something here?
pthread_create(&t,NULL,func,NULL);
// B. Thread running, so do something else.

有没有人能够在 A 点(在 CreateThread 和 ResumeThread 之间)做一些在 POSIX 上很难做到的实际例子?

最佳答案

  1. 预先分配资源,然后几乎立即启动线程。
  2. 您有一种重用线程的机制(恢复它),但实际上您没有要重用的线程,您必须创建一个。

关于c++ - 为什么我要启动一个线程 "suspended"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3156852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com