线程
文章平均质量分 61
小心眼儿猫
这个作者很懒,什么都没留下…
展开
-
线程概念
所谓线程,就是在一个程序里的一个执行路线就叫做线程(thread),更准确的说应该是:线程是一个进程内部的控制序列。每一个进程至少都有一个线程。 所以,一个进程中的线程共有同一地址空间,如果我们定义了一个函数,该进程中的每一个线程都是可以调用这个函数的。如果定义一个全局变量,每一个线程都可以访问到,除了这些,每个线程还共享其他的一些资源,比如说: 1:文件描述符表 2:每种信号的处...原创 2018-04-23 16:55:58 · 139 阅读 · 0 评论 -
线程控制(一):线程创建与终止
说在前面:与线程相关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的,要想使用这些函数,要通过引入头文,链接这些线程函数库时要使用编译器命令的“-lpthread”选项创建线程//创建一个新的线程 int pthread_create(pthread_t *threade,const pthreade_attr_t *attr,void *(*start_rout原创 2018-04-25 11:34:42 · 392 阅读 · 0 评论 -
线程控制(二):线程等待与分离
线程等待为什么需要线程等待呢? 1、已经退出的线程,其空间没有被释放,任然在进程的地址空间内 2、创建新的线程不会服用刚才退出线程的地址空间 pthread_join函数://等待线程结束 int pthread_join(pthread_t thread,void **value_ptr); //参数thread:线程ID //value_ptr:指向一个指向线程的返回值的指针 //返回原创 2018-04-25 13:42:55 · 482 阅读 · 0 评论 -
线程同步与互斥
mutex互斥量 大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程。 但有时候很多变量都需要在线程间共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互。 多个线程并发的操作共享变量,会带来一些问题。 举个妮子:#include <stdio.h> #include<stdlib.h> #include<string.h原创 2018-04-26 09:15:14 · 132 阅读 · 0 评论 -
从线程视角看生产者消费者模型
生产者消费者模型 通常说到生产者消费者模型,就会想到:“3种关系,2个角色,1个交易场所” 3种关系: 1、生产者与生产者之间:互斥 2、消费者与消费者之间:互斥 3、生产者与消费者之间:互斥且同步 2个角色: 生产者与消费者 1个交易场所: 临界区 下面写一个基于链表的生产者消费者例子: #include<stdio.h> #...原创 2018-04-26 17:28:46 · 117 阅读 · 0 评论 -
笔记:gdb调试多线程
gdb与多线程 在多线程编程时,当我们需要调试时,有时需要控制某些线程停在断点,有些线程继续执行。有时需要控制线程的运行顺序。有时需要中断某个线程,切换到其他线程。这些都可以通过gdb实现。 先看一下gdb调试多线程常用命令: 命令 功能 info threads 显示可以调试的所有线程。gdb会为每个线程分配一个ID(和tid不同),编号一般从1开始。后面的ID...原创 2018-04-26 21:22:25 · 346 阅读 · 0 评论