进程 不共享任何状态 调度由操作系统完成 有独立的内存空间(上下文切换的时候需要保存栈、cpu寄存器、虚拟内存、以及打开的相关句柄等信息,开销大) 通讯主要通过信号传递的方式来实现(实现方式有多种,信号量、管道、事件等,通讯都需要过内核,效率低) 不共享任何状态 调度由操作系统完成 有独立的内存空间 ...
分类:
编程语言 时间:
2019-01-28 12:01:33
阅读次数:
164
进程: 一些资源的集合。 一个进程里面最少有一个线程,主线程。 线程: 程序执行的最小单位。 电脑CPU有几个核心,就同时只能运行几个任务。 #上下文切换 全局解释器锁,GIL。 锁 多个线程同时去操作同一个数据的时候,可能会导致数据不正确。 要把这个数据机上锁,这样同时就只能有一个线程在操作这个数 ...
分类:
编程语言 时间:
2019-01-15 20:30:33
阅读次数:
180
多线程的好处1、并行编程可以使程序执行速度极大的提高,java本身是一种多线程语言。2、使用多线程可以利用机器额外的处理器,资源充分利用。简单介绍 java的线程机制是抢占式的,这表示调度机制会周期性的中断线程,将上下文切换到另一个线程,从而为每个线程都提供时间片,使得每个线程都会分配到数量合理的时... ...
分类:
编程语言 时间:
2019-01-13 14:24:05
阅读次数:
153
其实SpinWait的code 非常简单,以前看过很多遍,但是从来都没有整理过,整理也是再次学习吧。 我们先看看SpinWait的一些评论或者注意点吧:如果等待某个条件满足需要的时间很短,而且不希望发生昂贵的上下文切换,那么基于自旋的等待是一种很好的替换方案,SpinWait不仅提供了基本自旋功能, ...
众所周知Node基于V8,而在V8中JavaScript是单线程运行的,这里的单线程不是指Node启动的时候就只有一个线程,而是说运行JavaScript代码是在单线程上,Node还有其他线程,比如进行异步IO操作的IO线程。这种单线程模型带来的好处就是系统调度过程中不会频繁进行上下文切换,提升了单 ...
分类:
Web程序 时间:
2019-01-09 11:15:05
阅读次数:
170
摘自《C++多核编程》 6.2 线程和进程的比较 线程和进程都能够提供并发程序执行。当您决定使用多个进程还是多个线程时,上下文切换需要使用的系统资源、吞吐量、实体间通信、程序简化等都是需要考虑的问题。 6.2.1 上下文切换 当您创建一个进程时,可能只需要主线程这一个线程就可以实现进程的功能了。当进 ...
分类:
编程语言 时间:
2019-01-05 20:04:19
阅读次数:
192
6.1.2 线程上下文 操作系统管理很多进程的执行。有些进程是来自各种程序、系统和应用程序的单独进程,而某些进程来自被分解为很多进程应用或程序。当一个进程从内核中移出,另一个进程成为活动的,这些进程之间便发生了上下文切换。操作系统必须记录重启进程和启动新进程使之活动所需要的所有信息。这些信息被称作上 ...
分类:
编程语言 时间:
2019-01-05 18:24:05
阅读次数:
221
https://www.cnblogs.com/emperor_zark/archive/2012/12/11/context_switch_1.html https://www.cnblogs.com/emperor_zark/archive/2012/12/11/context_switch_2 ...
分类:
其他好文 时间:
2018-12-28 20:38:40
阅读次数:
186
一、CPU上下文切换 1、上下文切换,有时也称做进程切换或任务切换,是指CPU从一个进程或线程切换到另一个进程或线程。 2、vmstat是一个常用的系统性能分析工具,主要用来分析系统内存使用情况,也常用来分析CPU上下文切换和中断的次数。 例:vmstat -w 上下文切换需要特别关注的四列内容: ...
分类:
其他好文 时间:
2018-12-23 11:09:10
阅读次数:
145
上一篇分享了一些在linux下的性能监控和分析小工具。性能的影响因素其实主要是:CPU资源、IO资源和网络消耗资源。其中CPU资源算作是计算密集型消耗了。其中主要的消耗是cpu的切换造成的。 下图是cpu切换的简单介绍,从cpu上下文切换定义, cpu上下文切换的步骤, cpu上下文切换的分别来说明 ...
分类:
其他好文 时间:
2018-12-22 01:28:43
阅读次数:
169