自己做网站需要做服务器,wordpress改模板教程,wordpress/,微网站app制作线程的基本概念#xff1a;1、线程实质上是轻量级的进程#xff1b;2、引入线程后#xff0c;线程替代进程#xff0c;成为系统调度的基本单位#xff1b;3、线程不会分配内存空间#xff0c;一个进程中的多线程是共用进程的内存空间#xff1b;4、多线程没有多进程安全…线程的基本概念1、线程实质上是轻量级的进程2、引入线程后线程替代进程成为系统调度的基本单位3、线程不会分配内存空间一个进程中的多线程是共用进程的内存空间4、多线程没有多进程安全一个线程结束其余的线程都不能执行5、多线程比多进程的效率更高线程间资源共享6、编写代码时需要添加头文件#includepthread.h7、编译时需要链接线程库gcc xxx.c -lpthread8、同进程一样进程也是时间片轮转上下文切换线程的状态1、结合态所有的线程默认是结合态结合态的线程必须由其他线程调用pthread_join函数回收资源2、分离态使用pthread_detach函数将线程设置成分离态线程结束后由OS自动回收资源相关的API一、创建线程 #include pthread.hint pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);/*参数thread: 创建的线程的线程号attr: 线程属性 传 NULL 表示使用默认属性start_routine: 线程处理函数--线程体arg: 线程处理函数的参数返回值成功 0失败 错误码 */ 二、返回当前线程的线程号 #include pthread.hpthread_t pthread_self(void);/*返回值总是成功 当前线程的线程号*/三、退出线程 #include pthread.hvoid pthread_exit(void *retval);/*参数退出线程时的返回值 给 pthread_join 使用的返回值无*/四、阻塞等待一个结合态的线程退出回收资源 #include pthread.hint pthread_join(pthread_t thread, void **retval);/*参数thread线程的idretval接受pthread_exit返回的值的 如果不关心 传NULL即可返回值成功 0失败 错误码*/五、将线程设置成分离态 #include pthread.hint pthread_detach(pthread_t thread);/*参数 thread线程的id返回值成功 0失败 错误码*/六、pthread_cancel函数 #include pthread.hint pthread_cancel(pthread_t thread);/*功能给线程发一个取消信号线程能否被取消以及能否被立即取消取决于线程的 state 和 type也就是与下面两个函数有关7.pthread_setcancelstate函数8.pthread_setcanceltype函数参数thread线程的id*///7.pthread_setcancelstate函数int pthread_setcancelstate(int state, int *oldstate);/*参数state: PTHREAD_CANCEL_ENABLE //可被取消(默认状态)PTHREAD_CANCEL_DISABLE //不可被取消oldstate: 可传参NULL*/ //8.pthread_setcanceltype函数int pthread_setcanceltype(int type, int *oldtype);/*参数type: PPTHREAD_CANCEL_ASYNCHRONOUS //可被立即取消(默认状态)PTHREAD_CANCEL_DEFERRED //不可被立即取消oldtype: 可传参NULL*/