摘要: 问题:如果只有一个定时器,如何设置多个闹钟,并不使用全局变量、环境变量等传参 解决:拓展定时器信号的处理函数接口,封装一个结构体,存放定时时间sec,定时模式:mod,计时变量count,超时行为func(),行为函数的参数arg, 为了方便后面删除一个闹钟节点,所以需要一个唯一标示,故用每个节点的 阅读全文
posted @ 2018-04-25 19:42 edan 阅读(458) 评论(0) 推荐(0)
摘要: 前言: 线程之间资源共享,所以不存在通信问题,但是会有很强烈的竞争问题,解决线程之间的竞争问题有以下几种方法: 注:加锁不要太大,也尽量不要太多,否则会影响效率,读写锁结束最好放弃cpu调度 1.互斥量 功能:保证同一时间只有一个线程可以对共享资源进行操作,但是不保证同步 步骤: 1.1初始化互斥量 阅读全文
posted @ 2018-04-25 19:24 edan 阅读(1938) 评论(0) 推荐(0)
摘要: 线程库没有包含在系统库中,编译时要进行链接 gcc -l pthread 线程包括主线程和次线程,线程时平等的,共享数据短,栈空间,唯一不同的是栈空间不同 tid不要打印 2.pthread_cread(tid,&attr,func,&arg) //成功返回0,错误返回错误码 tid:线程id号;a 阅读全文
posted @ 2018-04-25 18:36 edan 阅读(2632) 评论(0) 推荐(0)
摘要: #include <setjmp.h > //注:长跳转语句只能从栈上往下跳,不能从下往上跳。 用途:可以用于超时退出机制 1.setjmp(jmp_buf env) //记录调转点env(最好设置成全局变量) sigsetjmp(sigjmp_buf env, int savesigs) //将s 阅读全文
posted @ 2018-04-25 11:17 edan 阅读(274) 评论(0) 推荐(0)