您的假设一开始是不正确的。pthread_t对象是不透明的。您不能直接在C中比较pthread_t类型。您应该改用pthread_equal。
另一个考虑因素是,如果pthread_create失败,则pthread_t的内容将是未定义的。可能不再将其设置为无效值。
我的喜好是保留pthread_create调用的返回值(以及线程ID),并使用该值来确定每个线程是否已正确启动。

您的假设一开始是不正确的。pthread_t对象是不透明的。您不能直接在C中比较pthread_t类型。您应该改用pthread_equal。
另一个考虑因素是,如果pthread_create失败,则pthread_t的内容将是未定义的。可能不再将其设置为无效值。
我的喜好是保留pthread_create调用的返回值(以及线程ID),并使用该值来确定每个线程是否已正确启动。