一般狀況下,線程模型的併發性能優於進程模型,但不老是這樣編程
線程的優點:多線程
線程的劣勢:併發
*nix 平臺下的線程實現異步
線程的建立與終止異步編程
#include <pthread.h> //pthread_* 類的函數成功返回 0;出錯時,直接返回錯誤碼,同時也會設置 errno int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); void pthread_exit(void *retval); pthread_t pthread_self(void);
釋放線程所佔用的資源函數
#include <pthread.h> int pthread_detach(pthread_t thread);
int pthread_join(pthread_t thread, void **retval);
線程屬性設置性能
#include <pthread.h> int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy(pthread_attr_t *attr); int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate); int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
線程 ID 比較測試
int pthread_equal(pthread_t t1, pthread_t t2);
線程清理函數spa
#include <pthread.h> void pthread_cleanup_push(void (*cleanup_routine)(void *), void *arg); void pthread_cleanup_pop(int execute);