一、线程和进程的概念
程序执行需要资源(内存,带宽,cpu,磁盘空间),操作系统分配资源的最小单位就是一个进程。
一台电脑上会跑很多个程序,一个时间点只能执行一个程序,如果逐个执行,那么执行当前程序的时候,其他程序就处于停顿状态(不能执行),程序会很卡。所以cpu会来回快速切换不同的程序,就好比同时做很多个菜,但是只有个火源,要想多个菜同时煮,只能来回移动切换火源。
虽然cpu来回切换,让电脑上的所有程序在同一个时间点同时运行一样,但是由于切换进程的时候,速度比较慢,所以就衍生了线程的概念。
线程就是把进程分成很多份,让cpu轮流执行。这样就能满足实际需要。一个线程对应一个方法流。
二、特点
1.线程默认都是前台线程。当所有前台线程结束后,当前进程才能结束。(前台线程会阻塞进程的关闭)
2.后台线程不会阻塞进程的关闭和退出。(后台线程不关闭,进程也能退出)
三、实例
控制台程序,开启一个线程,输出当前时间,每次输出前休眠500ms,主线程输出,“---------------这是主线程-----------------”,同样每次输出前休眠500ms。我们发现,输出的时候,并不是按代码的顺序执行,而是随机的。
四、双色球案例