首页 > 技术文章 > 多线程开端

woziji 2021-11-01 10:36 原文

 

Process和Thread

  • 说起进程,就不得不说程序。程序是指令和数据的有序集合,其本身没有任何的运行的含义,是一个静态的概念。

  • 进程则会是执行程序的一次执行过程,他是一个动态的概念,是系统资源分配的单位

  • 通常在一个进程里面包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。

注意:很多线程都是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,以为切换的很快,所以就有同时执行的错觉。

线程的核心概念

  1. 线程就会是独立的执行路径

  2. 在程序运行时,没有创建线程,后台也有多个线程,如主线程,gc线程

  3. main()称之为主线程,为系统的入口,用于执行整个程序;

  4. 在一个进程中,如果开辟了多个线程,线程的运行是由调度器安排 调度器是与电脑系统密切相关的,不能人为的干预。

  5. 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发调度;

  6. 线程会带来额外的开销,如CPU调度时间,并发控制开销;

  7. 每个线程在自己的工作内存交互,内存控制不当会导致数据不一样。

推荐阅读