一 并发,进程,线程的基本概念和综述
1 并发
两个或者更多的任务(独立的活动)同时发生,以提高性能
一个程序同时执行多个独立的任务。
在单核CPU的计算机上,某一个时刻只能执行一个任务,那么如何做到 一个 程序同时执行多个独立的任务呢?实际上是由操作系统调度,一个任务执行一段时间(这个时间一般比较短,ms为单位的,我们这里就假设是10ms),然后切换到另一个认为执行一段时间(这个时间当然也很短,假设是5ms),这样来来回回的在很短的时间内切换,给人们造成是多个认为在同时进行的错觉。这种模式我们叫做“任务切换”。任务切换来完成并发是有时间开销的。比如说:你一边听歌曲,一边打游戏。当CPU执行游戏的时候的,当时间到了的时候,要去执行播放歌曲,那么就需要将游戏当前的状态保存起来,然后等执行歌曲播放的时间到了的时候,又需要切换回游戏,这时候,就需要将游戏之前的状态恢复,这都是需要时间的。
对于多核CPU,是真的能实现并行执行对个任务的。但实际上任务数总是大于你CPU数量的,因此,也是 任务切换为主的。
2 可执行程序
是一个文件。
在windows一个扩展名为exe 的程序
在linux上 ,如果一个文件的属性是: rwxrwxrwx ,(x就代表着执行权限),在linux下,使用ls -la 列出文件属性
3 进程
大家已经知道了可执行程序的概念了。
当这个可执行程序运行起来的时候,就创建了一个进程。
例如:我们点击了qq.exe,就有一个qq的进程了
如果这时候,我们再点击了qq.exe,就又有了一个qq的进程了。
运行起来的进程在windows 的任务遍历器中可以查看
4 线程
4.1.每个进程都有一个主线程,这个主线程是唯一的。
4.2.当你执行一个可执行程序时,产生一个进程后,这个主线程就随着这个进程默默的启动了
4.3.主线程执行的是从 main 函数中的代码,知道return 结束。
这句