Process和Thread
-
说起进程,就不得不说程序。程序是指令和数据的有序集合,其本身没有任何的运行的含义,是一个静态的概念。
-
进程则会是执行程序的一次执行过程,他是一个动态的概念,是系统资源分配的单位
-
通常在一个进程里面包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。
注意:很多线程都是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,以为切换的很快,所以就有同时执行的错觉。
线程的核心概念
-
线程就会是独立的执行路径
-
在程序运行时,没有创建线程,后台也有多个线程,如主线程,gc线程
-
main()称之为主线程,为系统的入口,用于执行整个程序;
-
在一个进程中,如果开辟了多个线程,线程的运行是由调度器安排 调度器是与电脑系统密切相关的,不能人为的干预。
-
对同一份资源操作时,会存在资源抢夺的问题,需要加入并发调度;
-
线程会带来额外的开销,如CPU调度时间,并发控制开销;
-