线程
RayCongLiang
广东海洋大学16级物联网学生
展开
-
【Linux学习笔记49】线程池机制
引言线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。如果一个程序任务比较多,那么我们可以使用多线程来分担任务,但是并不是线程越多越好,虽然创建的线程被称为轻量级线程,但也占用资源。因此,需要线程池机制来维持整个程序的进行。线程池机制在一开始的时候,创建若干条线程,然后使其处于睡眠状态等待任务。主线程接收任务,然后唤醒线程,并然其承担任务。如果线...原创 2019-09-11 23:19:48 · 189 阅读 · 0 评论 -
【Linux学习笔记48】线程的死锁及其避免死锁的方法
线程的死锁在上一篇笔记记录的线程的退出与取消,存在着一个线程死锁的隐患:一个线程正在加锁运行代码,正常情况下应该是运行结束后,线程解锁。但是在线程正在运行的时候,cancel命令来了,让线程退出,而导致该线程一直处于加锁状态。防止线程死锁的方法1.加锁之前做准备:将解锁函数放入函数f()2.使用push(f)函数将f()函数压栈3.如果加锁状态,cancel命令来了,程序也不会马上取消...原创 2019-09-03 23:25:11 · 304 阅读 · 0 评论 -
【Linux学习笔记47】线程的退出与取消
线程的退出之前的线程笔记都有接触线程的退出,那么需要注意的是,一条线程的退出是独立的,与其他线程没有关系。线程的取消除了线程的主动退出,还有取消线程的做法,如果存在多余线程或者线程的运行方法不好,都可以通过动态取消线程来减少程序的资源开支。...原创 2019-09-03 13:36:43 · 712 阅读 · 0 评论 -
【Linux学习笔记46】线程的同步(POSIX匿名信号量)
引言之前也记录过POSIX有名信号量的使用,那么POSIX有名信号量主要用于进程之间通信【Linux学习笔记42】进程间的通信(四)(POSIX有名信号量)那么,这一篇笔记主要是记录线程之间的POSIX匿名信号量。为了实现线程之间的同步,可以使用POSIX匿名信号量来实现。POSIX有名与匿名信号量的区别POSIX有名信号量会使用指针使用sem_open函数打开系统中的文件,即POSIX...原创 2019-09-01 11:08:00 · 277 阅读 · 0 评论 -
【Linux学习笔记45】线程的互斥锁与读写锁
线程的互斥锁当我们访问一个资源,但是这个资源不能同时被访问的时候,我们可以使用线程的互斥锁来解决这个问题,当线程1要访问资源的时候,加入互斥锁,防止线程2或者其他线程同时访问该资源代码的实现1.定义互斥锁:pthread_mutex_t m;2.初始化互斥锁:pthread_mutex_init(&m,NULL); 3.使用互斥锁(上锁)pthread_mutex_l...原创 2019-08-31 23:23:47 · 205 阅读 · 0 评论 -
【Linux学习笔记44】线程的调度策略与优先级
Linux中如何体现优先级静态优先级:级别为0~99的100个优先级:0级为普通,1 ~ 99级为实时动态优先级:当静态优先级为0时,就以动态优先级加以区分,级别为-19~20(nice值),Nice值越大,优先级越低例如:两个都为0级的静态优先级线程:p1,p2p1的nice为20,p2的nice为-10。则,p2比p1优先级更高。...原创 2019-08-27 01:29:02 · 747 阅读 · 1 评论 -
【Linux学习笔记43】线程的创建以及属性设置
引言在Linux内核中其实并没有线程与进程的概念,只有任务概念。那么进程与线程的关系在:【Linux学习笔记32】进程与线程的基本理解也有记录过。所以这一篇笔记主要介绍线程的创建以及属性设置。为什么要在进程中创建多条线程?每一条线程都有自己独立的执行状态线程共享进程中的所有资源创建线程int pthread_creat(pthread_t *thread, const pthr...原创 2019-08-26 16:53:40 · 214 阅读 · 0 评论