多线程1.进程:一个正在执行的程序。2.线程: 由一堆不分叉的CPU指令组成的集合。3.多线程:由多条不分叉的CPU指令组成的集合。CPU 物理CPU 一个物理CUP能够虚拟成多核CPU,一个物理CPU虚拟成4核,就相当于有四个CPUY,一个CPU同一个时刻 只能执行一个CPU命令。4.上下文切换....
分类:
编程语言 时间:
2015-08-26 19:22:47
阅读次数:
229
线程的那些事
前言:这篇文章主要小结下linux下多线程的知识点,并且有一些多线程编程中的拓展概念。以及c语言编写线程池的思路linux线程简介
线程的私有数据和公有数据
线程的上下文切换
创建线程
线程终止
互斥量
条件变量
多线程概念简单拓展
竟态条件
并发与并行
同步与互斥
volatile
CAS(compare and swap)
指令重排和内存屏障
c语言实现线程池思想
lin...
分类:
编程语言 时间:
2015-08-04 11:29:09
阅读次数:
212
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】
linux为多任务系统,正常情况下都存在成百上千个任务。由于linux提供抢占式的多任务模式,所以linux能同时并发地交互执行多个进程,而调度程序将决定哪一个进程投入运行、何时运行、以及运行多长时间。调度程序是像linux这样的多任务操作系统的基础,...
分类:
系统相关 时间:
2015-07-31 23:36:20
阅读次数:
211
(重点 一个问题最令人关注的面试官。必须从cpu调度,上下文切换。数据共享,多核cup采用,脚印,等答案的方方面面。再有一个问题,即必须要问:这件事是一个私人的线程?答案必须列入登记册,否则,悲催)可重入:概念基本没有比較正式的完整解释。可是它比线程安全要求更严格。依据经验,所谓“重入”,常见的情况...
分类:
编程语言 时间:
2015-07-30 12:53:49
阅读次数:
119
使用Nginx搭配PHP已有7年的这份经历让我们学会如何为高流量站点优化NGINX和PHP-fpm配置。以下正是这方面的一些提示和建议:1. 将TCP切换为UNIX域套接字UNIX域套接字相比TCP套接字在loopback接口上能提供更好的性能(更少的数据拷贝和上下文切换)。但有一点需要牢记:仅运行...
分类:
Web程序 时间:
2015-07-25 18:03:27
阅读次数:
138
Java并发编程:Thread类的使用Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来、以及如何在Java中怎么创建线程和进程。今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的...
分类:
编程语言 时间:
2015-07-15 16:32:06
阅读次数:
136
当计算机系统是多道程序设计系统时,通常就会有多个进程或线程同时竞争CPU。只要有两个或更多的进程处于就绪状态,这种情形就会发生。如果只有一个CPU可用,那么就必须选择下一个要运行的进程。操作系统内核使用一种称为进程切换(process switch),有时称为上下文切换(context swit.....
分类:
编程语言 时间:
2015-07-13 00:34:20
阅读次数:
183
进程是系统中程序执行和资源分配的基本单位。每个进程都有自己的数据段,代码段和堆栈段,这就导致了进程在进行切换等操作起到了现场保护作用。但是为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程演化中出现了另外一个概念,这就是线程,也被人称为轻量级的进程。它是一个进程内的基本调度单位。线程是在共享的内存空间中并发的多道执行路径,它们共享一个进程的资源,比如文件描述符和信号处理等。因此,...
分类:
编程语言 时间:
2015-07-12 09:43:26
阅读次数:
148
dawn的协程库,使用的是kilim,不过已经远非kilim的原有代码,主要保留了协程的两个基本原语,再往上层,已经全部被替换了。
协程库,我学习过boost asio中的协程,也在我的机器上测试过单纯上下文切换的速度。这个速度在不同的机器之间没有可比性,因为彼此的cpu可能不同。但是在同一台机器上的不同库的对比,具有一定的参照性。
我记得,当时asio协程单线程情况下,协程切...
分类:
其他好文 时间:
2015-07-03 22:05:51
阅读次数:
240
紧接上一篇!!(二)抢占和进程上下文上下文切换,就是从一个可执行进程切换到另一个可执行进程,由定义在kernel/sched.c中的context_switch()函数处理,该函数主要完成两项基本工作:?1:调用声明在asm/mmu_context.h中的switch_mm(),该函数负责把虚拟内存从上一个进程映射切换到新进程中。
?2:调用声明在asm/system.h文件中的switch_to(...
分类:
系统相关 时间:
2015-06-23 13:41:16
阅读次数:
191