原文:https://www.cnblogs.com/zhaoyl/p/3620204.html 首先从OS设计原理上阐明三种线程:内核线程、轻量级进程、用户线程 内核线程 内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的 ...
分类:
编程语言 时间:
2019-06-16 11:19:16
阅读次数:
88
Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃 3,SCHED_RR实时调度策略,时间片轮转。当进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾 ...
分类:
编程语言 时间:
2019-06-14 14:23:32
阅读次数:
122
Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL http://www.ibm.com/developerworks/cn/linux/kernel/l thread/ 自从多线程编程的概念出现在 ...
分类:
编程语言 时间:
2019-06-03 14:27:21
阅读次数:
107
一、线程池实现原理 1. 管理者线程 (1)计算线程不够用 创建线程 (2) 空闲线程太多 a. 销毁 更新要销毁的线程个数 通过条件变量完成的 b. 如果空闲太多,任务不够 线程阻塞在该条件变量上 c. 发送信号 pthread_cond_signal 2. 线程池中的线程 (1)从任务队列中取数 ...
分类:
编程语言 时间:
2019-05-25 19:44:47
阅读次数:
149
一、第二次课大纲1.fork、vfork、clone2.写时拷贝技术3.Linux线程的实现本质4.进程0和进程15.进程的睡眠和等待队列6.孤儿进程的托孤,SUBREAPER1.fork、vfork、Copy-on-Write例子2.life-period例子,实验体会托孤3.pthread_cr ...
分类:
系统相关 时间:
2019-01-18 17:28:21
阅读次数:
277
42.1 线程状态转换 42.1.1 状态转换图 42.1.2 一个线程计算,多个线程获取的案例 编译运行结果如下: 42.2 读者-写者案例 几种情况: 1 个写者,1 个读者 1 个写者,多个读者 多个写者,多个读者 1 个写者,1 个读者 1 个写者,多个读者 多个写者,多个读者 完成第一种情 ...
分类:
编程语言 时间:
2019-01-13 20:26:56
阅读次数:
300
41.1 概念 41.1.1 条件变量的介绍 互斥锁的缺点是它只有两种状态:锁定和非锁定 条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足 条件变量内部是一个等待队列,放置等待的线程,线程在条件变量上等待和通知,互斥锁用来保护等待队列(对等待队列上锁),条件变量通常和互斥锁一 ...
分类:
编程语言 时间:
2019-01-11 23:19:47
阅读次数:
270
39.1 概念 线程同步 是一个宏观概念,在微观上包含线程的相互排斥和线程先后执行的约束问题 解决同步方式 条件变量 线程信号量 线程互斥 线程执行的相互排斥 解决互斥的方式 互斥锁 读写锁 线程信号量 是一个宏观概念,在微观上包含线程的相互排斥和线程先后执行的约束问题 解决同步方式 条件变量 线程 ...
分类:
编程语言 时间:
2019-01-04 21:24:24
阅读次数:
242
1 Linux 中的进程与线程 对于 Linux 来讲,所有的线程都当作进程来实现,因为没有单独为线程定义特定的调度算法,也没有单独为线程定义特定的数据结构(所有的线程或进程的核心数据结构都是 task_struct)。 对于一个进程,相当于是它含有一个线程,就是它自身。对于多线程来说,原本的进程称 ...
分类:
编程语言 时间:
2018-12-25 20:14:07
阅读次数:
180
1、条件变量 条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥 (1)创建和注销 条件变量和互斥锁一样,都有静态&动态两种创建方式,静态方式使用P ...
分类:
编程语言 时间:
2018-12-18 19:56:31
阅读次数:
207