nas怎么做网站服务器,一流的句容网站建设,wordpress主题免费和付费,zac博客seo目录 一、概念二、进程与线程的区别⭐⭐⭐三、线程资源四、函数接口4.1 线程创建4.2 线程退出4.3 线程回收4.3.1 阻塞回收4.3.2 非阻塞回收 4.4 pthread_create之传参4.5 练习 一、概念
是一个轻量级的进程#xff0c;为了提高系统的性能引入线程。 进程与线程都参与cpu的统一… 目录 一、概念二、进程与线程的区别⭐⭐⭐三、线程资源四、函数接口4.1 线程创建4.2 线程退出4.3 线程回收4.3.1 阻塞回收4.3.2 非阻塞回收 4.4 pthread_create之传参4.5 练习 一、概念
是一个轻量级的进程为了提高系统的性能引入线程。 进程与线程都参与cpu的统一调度。 在同一进程中创建的所有线程共享该进程的地址空间
二、进程与线程的区别⭐⭐⭐
相同点 都为操作系统提供了 并发 执行能力不同点 调度和资源 线程是系统调度的最小单位进程是资源分配的最小单位同一个进程创建的多个线程共享进程的资源地址空间方面 进程的地址空间相互独立在同一进程中创建的所有线程共享该进程的地址空间通信方面 线程通信相对简单只需要通过全局变量可以实现但是需要考虑临界资源访问的问题进程通信比较复杂需要借助进程间的通信机制(借助3g-4g内核空间)安全性方面 线程安全性差一些当进程结束时会导致所有线程退出进程相对安全
三、线程资源
共享的资源 可执行的指令、静态数据、进程中打开的文件描述符、信号处理函数、当前工作目录、用户ID、用户组ID私有的资源 线程ID (TID)、PC(程序计数器)和相关寄存器、堆栈、错误号 (errno)、信号掩码和优先级、执行状态和属性
四、函数接口
4.1 线程创建
pthread_create int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
功能创建线程参数 thread 线程标识attr 线程属性 NULL代表设置默认属性start_routine函数名代表线程函数arg 用来给前面函数传参 返回值 成功0失败错误码
4.2 线程退出
pthread_exit int pthread_exit(void *value_ptr)
功能用于退出线程的执行参数value_ptr线程退出时返回的值任意类型若没有返回值默认选择NULL就可返回值 成功 0失败errno
4.3 线程回收
4.3.1 阻塞回收
pthread_join int pthread_join(pthread_t thread, void **value_ptr)
功能用于等待一个指定的线程结束阻塞函数参数 thread创建的线程对象value_ptr指针*value_ptr指向线程返回的参数 返回值 成功 0失败errno
4.3.2 非阻塞回收
pthread_detach int pthread_detach(pthread_t thread);
功能让线程结束时自动回收线程资源,让线程和主线程分离参数thread线程ID
例子 pthread_detach百度百科链接
4.4 pthread_create之传参 4.5 练习
通过线程实现数据的交互主线程循环从终端输入线程函数将数据循环输出当输入quit结束程序。