营销网站制作方法,济南网络推广公司有哪些,中国建设官网信息查询,团购网站一、概念 线程是轻量级的进程#xff0c;被包含在进程之中#xff0c;多个线程使用同一片进程空间。进程是操作系统资源分配的最小单位 #xff0c;线程是操作系统运算调度的最小单位。 二、优/劣势
优势#xff1a;解决了进程间切换耗费时间的问题#xff0c;由于使用… 一、概念 线程是轻量级的进程被包含在进程之中多个线程使用同一片进程空间。进程是操作系统资源分配的最小单位 线程是操作系统运算调度的最小单位。 二、优/劣势
优势解决了进程间切换耗费时间的问题由于使用同一片内存空间因此通信会更加简单(使用全局变量)。
劣势由于线程共享同一片内存空间因此会存在资源竞争的问题可使用同步、互斥机制来解决同步机制可以确保多个线程按照一定的顺序执行而互斥机制可以保证在同一时间只有一个线程访问共享资源。 三、线程公/私有数据
线程公有数据全局变量、静态变量(static)、动态分配的内存(malloc)文件描述符(上限1024)。
线程私有数据线程id号(tid)、堆栈(局部变量)、错误号。 四、线程的使用
线程的调用属于外部库,在编译时需要链接库
gcc c语言源程序 -l pthread 五、线程相关函数
1、pthread_create:创建线程 int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void *(*start_routine)(void *),void *arg);
第一个参数可获取线程id是用于接收线程id的变量的地址
第二个参数通常用NULL表示创建的线程使用默认属性是存储线程属性的结构体变量地址
第三个参数线程执行函数的入口地址(指针函数指针)指向返回值为void*类型参数为void*类型的函数
第四个参数给线程执行函数传递的参数。
2、pthread_exit:退出线程
执行效果类似于return
3、pthread_join阻塞等待指定线程退出
4、pthread_cancel取消线程
可在不同线程中取消另一个线程 六、线程间通信 由于线程间使用同一片进程空间因此通信过程实际上非常简单使用全局变量进行数据的传递多个线程可同时访问资源同步、互斥两种机制用于解决访问共同资源时的问题。 七、同步、互斥机制
同步 解决执行的顺序问题使程序可以按照指定的顺序执行 信号量机制P-V 函数接口 sem_init:初始化信号量 sem_wait:申请资源(P操作) sem_post:释放资源(V操作) 使用一个信号量可能会出现供大于求的问题因此应该使用两个信号量。
互斥 解决程序中临界资源的竞争问题 函数接口 pthread_mutex_init:初始化互斥锁 pthread_mutex_lock申请互斥锁 pthread_mutex_unlock释放互斥锁