4. API 比较细节 |
#include <thread.h>
int thr_join (thread_t tid, thread_t *departedid, int *status)
#include <pthread.h>
int pthread_join (thread_t tid, int *status)
在Solaris 中
thread_t tid;
thread_t departedid;
int ret;
int status;
ret = thr_join (tid, &departedid, &status); /* waiting to join thread "tid" with status */
ret = thr_join (tid, &departedid, NULL); /* waiting to join thread "tid" without status */
ret = thr_join (tid, NULL, NULL); /* waiting to join thread "tid" without return id and status */
在pthreads 中
在pthreads 中,没有返回终止线索的线索id的概念。
pthread_t tid;
int ret;
int status;
ret = pthread_join (tid, &status); /* waiting to join thread "tid" with status */ ret = pthread_join (tid, NULL); /* waiting to join thread "tid" without status */
在Solaris 中
thread_t tid;
thread_t departedid;
int ret;
int status;
ret = thr_join (NULL, &departedid, &status); /* waiting to join thread "tid" with status */
在pthreads 中
通过在Solaris thr_join()中将线索id指示为NULL,当进程中的任何非分离线索退出时,将发生连接。departedid 将指示已存在线索的线索id。
在pthreads 中,不提供这个功能。在pthread_join() 中以NULL作为线索id,将导致无效的参数错(EINVAL)。没有departedid 参数可以用于返回已退出的线索id。
Copyright: NPACT |