一般状况下,线程模型的并发性能优于进程模型,但不老是这样编程
线程的优点:多线程
线程的劣势:并发
*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);