不错,线程的切换,的确会占CPU资源的确会使CPU速率降低,因为进程是一个资源的拥有者,在创建、撤销、和钱换中,都会付出“较大的开销”(见操作系统课本(^_~))除非是多处理器,因为CPU有时钟频率,可以回忆一下微机原理实验的时候一下一下按按钮模仿的CLK时钟脉冲去执行机器命令。
但是这跟你说的又有一毛钱的关系吗
操作系统是多任务的,其内核通过进程控制块来感知线程的存在并加以控制,微观上是分时处理“串行”处理,但是我们还是需要“并行”!
我们听歌的时候,打开QQ视频聊天会中断么,不会。当你关闭一个java编写的窗口,会在程序执行完才允许点击关闭吗,不会而是仍然可以有一个点击事件触发响应来中断程序。这就是并发的世界。
因为我们需要并发,因为有时候甚至要多个进程合作完成同一个任务。有时候不同的进程要访问相同的资源(一个进程的不同线程,或者是不同进程的不同线程),进程之间需要通信,因此需要并发控制,同步唤醒机制什么更是不用说了 |