一、多线程的执行原理
1.单任务操作系统:同一时间只能执行一个任务
多任务操作系统:同一时间可以执行多个任务
比如,我可以一边听着酷狗,一边聊着QQ,
在单任务的操作系统里边,只有进程,没有线程,
单任务操作系统,CPU必须执行完一个任务,才能执行第二个任务,
多任务操作系统,CPU假设是单核CPU,一次只能做一件事情,
多任务操作系统,CPU即使是单核CPU,也可以同时执行这三个任务,
多任务操作系统里边,引入了线程,线程怎么工作的呢,
假设操作系统里有四个线程,这四个线程,都是要交给CPU来执行的,并且,CPU假设是单核CPU,同一时间只能做一件事,双核呢,同一时间可以做两件事,至于这两件事,它做哪件事,不用我们管,我们也管不了,是操作系统负责的,我们写程序,只要你开线程就行了,
假设,先去执行第一个线程,假设线程1执行一个死循环,别人还能执行吗?不能了,但是,实际情况下,现在这个操作系统上,即使我写一个死循环,别的程序也能执行吧,
所以,它不是等着线程1执行完,而是会执行一个非常非常短的时间,这个时间人感觉不到,假设是15纳秒,
这15纳秒执行完,会把线程1 当前的状态,保存到内存中,当前的状态包括什么呢,包括变量的值,包括当前执行到哪一行代码了,
15纳秒到了,会把当前的状态保存,去执行线程2,
线程2执行15纳秒,把线程2的状态保存,执行线程3,