进程的创建:第一个参数通常传递一个pthread_t 的地址,第二个参数为线程的属性,第三个参数为函数指针,是子线程要做的事情。arg是函数指针所对应函数的参数。
sleep主要是为了等待子线程退出,因为当主线程退出时,子线程将没有进程空间,子线程自然无法运行。
线程退出是指将调用该函数的线程退出,但是不会导致此空间释放。
pthread_join
函数:主线程通过调用pthread_join
来等待子线程结束,并获取其退出状态。- 操作系统内核:内核负责标记和回收子线程的资源,包括线程控制块和线程栈。
pthread_join
确保子线程资源的清理和回收得以进行。- 避免资源泄露:通过调用
pthread_join
,可以避免僵尸线程状态和资源泄露,确保线程资源在子线程终止后得到正确处理。
因为t是存储在子线程的栈中的,所以上述代码应该将t定义为全局变量或者是静态变量。