线程 我们都知道一个程序的执行是由进程来完成的,而进程里真正执行代码却是有线程来完成,它是真正的执行流。通常将一个程序?里一个执?行路线就叫做线程(thread)。对它更准确的定义是:线程是“一个进程内部的控制序列” 。而一切进程都至少有一个执行线程。 总的来说进程与线程关系就是 ①进程是资源竞争的 ...
分类:
编程语言 时间:
2018-05-25 19:37:09
阅读次数:
212
线程池的实现 1:自定义封装的条件变量 1 //condition.h 2 #ifndef _CONDITION_H_ 3 #define _CONDITION_H_ 4 5 #include <pthread.h> 6 7 typedef struct condition 8 { 9 pthrea ...
分类:
编程语言 时间:
2018-05-18 18:43:04
阅读次数:
172
linux下查看线程数的方法及超过系统线程最大值的报错通过/proc伪文件系统说明:Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于/proc文
分类:
编程语言 时间:
2018-04-11 17:07:03
阅读次数:
193
今天朋友问我一个Linux程序CPU占用涨停了,该如何分析, CPU占用过高,模拟CPU占用过高的情况 先上一段代码: 第10个线程中没有进行睡眠,会独占进程的时间片,导致CPU利用率过高, 现在就要定位到第10个 第一步:top 查看程序进程id 第二步:top -H -p 96263 定位CPU ...
分类:
编程语言 时间:
2018-03-21 17:31:48
阅读次数:
236
转自:http://www.cnblogs.com/clover-toeic/p/4029269.html 前言 本文基于顺序循环队列,给出Linux生产者/消费者问题的多线程示例,并讨论编程时需要注意的事项。文中涉及的代码运行环境如下: 本文假定读者已具备线程同步的基础知识。 一 顺序表循环队列 ...
分类:
编程语言 时间:
2018-01-04 16:20:51
阅读次数:
228
在Linux中,线程是由进程来实现,线程就是轻量级进程( lightweight process ),因此在Linux中,线程的调度是按照进程的调度方式来进行调度的,也就是说线程是调度单元。Linux这样实现的线程的好处的之一是:线程调度直接使用进程调度就可以了,没必要再搞一个进程内的线程调度器。在 ...
分类:
编程语言 时间:
2017-12-02 15:11:36
阅读次数:
183
前言: 接续前节 [development][C] 条件变量(condition variables)的应用场景是什么 之前讨论了条件变量的问题, 已经知道在逻辑上, 条件变量(管程)(moniter) 与信号量 逻辑等价. 可以相互实现. 又知: 二元信号量可以用来实现互斥量. 那么是不是说进程间 ...
分类:
其他好文 时间:
2017-11-09 14:32:12
阅读次数:
206
背景是这样的:项目中用到C++实现一个模块,需要用多线程的方式实现其中需要实现热加载,这部分当配置文件发生改变会在需要的情况下取消掉不需要的线程,也会在需要的情况下创建新的线程但经过观察后会发现,每次更新配置文件,删除掉的线程所申请的资源并没有得到释放体现在to..
分类:
编程语言 时间:
2017-09-25 11:26:03
阅读次数:
247
本文内容主要来自博文:Linux系统编程——线程同步与互斥:互斥锁 同时补充以下博文说明: [1] Linux线程-互斥锁pthread_mutex_t [2] POSIX 互斥锁: pthread_mutex_t 为什么需要互斥锁? 在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。 ...
分类:
其他好文 时间:
2017-09-21 23:32:42
阅读次数:
413
1)初始化线程锁 静态初始化: 或者动态初始化: 其中 attr 用于指定互斥锁属性,如果为NULL则使用缺省属性。 函数成功执行后,互斥锁被初始化为未锁住态。 2)锁的操作 2.1)加锁: pthread_mutex_trylock() 方式在锁被占用的时候不会阻塞,而是返回EBUSY 2.2)释 ...
分类:
编程语言 时间:
2017-09-21 23:21:29
阅读次数:
258