线程同步之条件变量

相关函数 int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);初始化一个条件变量;也可以直接定义的方式初始化:pthread_cond_t cond = PT...

2018-05-14 01:23:47

阅读数:44

评论数:0

linux多线程之posix信号量

信号量理解 1.在多任务操作系统中,通常资源都是固定数量可用的,比如打印机这个外设;但是需要使用该资源的任务有很多,这时就可以使用到信号量来协调资源的使用了(当然在资源内部用锁也可以达到同样的效果); 2. 信号量有被操作系统实现为PV操作:P(passeren),消耗资源,对信号量做减一操作...

2018-05-13 00:00:48

阅读数:58

评论数:0

设定线程运行栈:pthread_attr_setstack()

概述 linux在创建线程时,如果使用默认的栈,默认栈的大小通常为8MB,这对内存比较紧张的嵌入式平台来说,是无法接受的巨量内存浪费; pthread_attr_setstack()可以设定线程栈的地址和大小,设定的栈地址必须以linux页面大小对齐,所以这里使用posix_memalign(...

2018-05-10 00:29:48

阅读数:362

评论数:0

prctl()设定线程名

基本介绍 prctl()原型为int prctl (int __option, …);用于控制主进程或者子进程的属性; 本文主要介绍使用PR_SET_NAME 这个flag设定线程的名字,这个在平常调试中很有帮助,比如想知道哪个线程的CPU占用高; 需要包含的头文件为 sys/prctl.h;...

2018-05-09 23:41:54

阅读数:200

评论数:0

线程同步之互斥锁:pthread_mutex_init,pthread_mutex_lock,pthread_mutex_unlock,pthread_mutex_destroy

主要函数说明 int pthread_mutex_init (pthread_mutex_t *__mutex,const pthread_mutexattr_t *__mutexattr)创建一个锁; int pthread_mutex_destroy (pthread_mutex_t *_...

2018-05-08 23:57:34

阅读数:327

评论数:0

让printf打印更加丰富多彩

基本原理 在支持ANSI color控制的终端上,可用通过ANSI控制码改变终端的字符的显示方式; 所以我们可以通过printf或者cout输出特定ANSI控制码来让后面的字符串输出改变成想要的显示方式; ANSI控制码以ESC作为控制码的开始标记,在C语言中对应转义字符\033;然后以m作为...

2018-05-06 11:01:50

阅读数:83

评论数:0

常用ANSI控制码表

【光标控制】 控制码 说明 [X;YH 将光标移至第 X 行,第 Y 列的位置。 [nA 光标上移 n 列。<<若至屏幕顶端则无效>> [nB 光标下移 n 列。<&a...

2018-05-06 01:10:56

阅读数:58

评论数:0

linux系统时间获取与设定

clock_gettime() 原型为int clock_gettime (clockid_t __clock_id, struct timespec *__tp); 获取当前系统时间,示例: /** * clock_gettime()的第一个参数可以如下设定: * CL...

2018-05-01 23:11:07

阅读数:407

评论数:0

linux消息队列操作

基本函数说明 int msgget (key_t __key, int __msgflg),创建消息队列;或者返回已经存在的消息队列的ID; int msgctl (int __msqid, int __cmd, struct msqid_ds *__buf),消息队列控制,如删除消息队列,获...

2018-05-01 14:59:19

阅读数:169

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭