多线程
文章平均质量分 79
nosmatch
这个作者很懒,什么都没留下…
展开
-
Posix多线程编程学习笔记(一)—线程基础(1)
一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。 二.线程的优点(1) 通过为每种事件类型的处理分配转载 2012-01-09 09:15:23 · 548 阅读 · 0 评论 -
Posix多线程编程学习笔记(一)—线程基础(2)
6.名称::pthread_detach功能:使线程进入分离状态。头文件:#include 函数原形:int pthread_detach(pthread_t tid);参数: 返回值:若成功则返回0转载 2012-01-09 12:51:47 · 618 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(1)
一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1.名称::pthread_attr_init/pthread_attr_destroy转载 2012-01-09 13:21:47 · 571 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(2)
四、线程的调度策略 函数pthread_attr_setschedpolicy和pthread_attr_getschedpolicy分别用来设置和得到线程的调度策略。 4.名称::pthread_attr_getschedpolicypthread_attr_setschedpolicy功能:获得转载 2012-01-09 15:08:38 · 570 阅读 · 0 评论 -
gdb多线程调试
先介绍一下GDB多线程调试的基本命令。 info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。thread ID 切换当前调试的线程为指定ID的线程。break thread_test.c:123 thread all在所有线程中相应的行上设置断点thread apply ID1 ID2转载 2012-01-09 10:50:39 · 1078 阅读 · 0 评论 -
pthread_cleanup_push/pop
void pthread_cleanup_push(void (*routine)(void*), void *arg);void pthread_cleanup_pop(int execute);//这里的int参数,0是不执行push的内容,非0是执行。原型很简单,功能跟atexit()差不多,只不过一个是线程一个是进程。用来设置在push/pop内线程退出时要做的事情。转载 2012-01-09 11:09:53 · 3182 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(3)
六、线程的作用域 函数pthread_attr_setscope和pthread_attr_getscope分别用来设置和得到线程的作用域,这两个函数的定义如下: 7.名称::pthread_attr_setscopepthread_attr_getscope功能:获得/设置线程的作用域转载 2012-01-09 15:07:36 · 886 阅读 · 0 评论 -
Posix多线程编程学习笔记(三)—信号灯(2)
5.名称::sem_wait/sem_trywait功能:等待共享资源头文件:#include 函数原形:int sem_wait(sem_t *sem);int sem_trywait(sem_t *sem);参数:sem 指转载 2012-01-10 09:33:34 · 757 阅读 · 0 评论 -
多线程条件下的计数器
最近编码需要实现多线程环境下的计数器操作,统计相关事件的次数。下面是一些学习心得和体会。不敢妄称原创,基本是学习笔记。遇到相关的引用,我会致谢。 当然我们知道,count++这种操作不是原子的。一个自加操作,本质是分成三步的: 1 从缓存取到寄存器 2 在寄存器加1 3 存入缓存。 由于时序的因素,多个线程操作同一个全局变量,会出现问题。这也转载 2012-05-15 14:11:25 · 1081 阅读 · 0 评论