在课本上读到一句,window支持多进程,但cpu只有一个,所以同一时间只能运行一个进程,假如说,我的桌面上同时运行着qq和飞信,但是这两者时刻显示着在线,而不是只是单一的一个程序在运行,是不是这两个进程在非常短的事件相互执行,我们的肉眼看不到这两个程序在交替运行,总能看到在线,是不是这么理解???

解决方案 »

  1.   

    大体上是这样。
    对于单核的CPU,在一个时间点上CPU只能进行一次运算,这一次运算要么是这个程序的,要么是那个程序的,不可能多个程序的运算同时在这个时间点上完成,所以进程之间会竞争CPU资源,windows说的多进程就是用户可以同时开启多个进程,而且多个进程各自也都有在执行自己的任务,但是并不说明各个进程100%都在占用CPU的,操作系统会负责分配各个进程的资源分配。
    对于多核的服务器就复杂了,呵呵。
      

  2.   


    。所以进程之间会竞争CPU资源,。在cpu中快速切换的是线程;  一个进程包含多个线程,但至少有一个;
    与操作系统也有关系在Windows3.1, Mac Os 9, Symbian OS中使用的是共享式的多任务操作策略;
    即:单核单线程的CPU里一个线程睡在那了,别的线程等待。在WindowsXP Unix/Linux等现今的操作系统中使用的是抢占式的多任务操作策略;
    即:多核多线程的CPU里   进程的线程抢夺着进入的,你进这个,我就去抢那个。
      但是如果一个线程长时间睡在CPU  这个资源会被强制回收。