本文纯属概念和简单的常识性内容
并行是指两个或者多个事件在同一时刻发生。并发是指两个或多个事件在同一时间间隔内发生
1、基础概念
因为服武器的CPU都是多核的,多线程的使用能充分发挥CPU的多核优势,提高程序执行效率。
1.1、线程
线程是一个基本的 CPU 执行单元。它必须依托于进程存活。一个线程是一个execution context,即一个 CPU 执行时所需要的一串指令。
1.2、进程
进程是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调用的独立单位。
可以简单地理解为操作系统中正在执行的程序。也就说,每个应用程序都有一个自己的进程。
每一个进程启动时都会最先产生一个线程,即主线程。然后主线程会再创建其他的子线程。
1.3 区别与联系
线程必须在某个进行中执行。
一个进程可以包含多个线程,其中有且只有一个主线程。
多线程共享同个地址空间、打开的文件以及其他资源。
多进程共享物理内存、磁盘、打印机以及其他资源。
2、选择多线程还是多进程?
根据应用选择类型的
一般分为3种 CPU 密集型、磁盘 I/O 密集型、网络I/O密集型
CPU 密集型:程序比较偏重于计算,需要经常使用 CPU 来运算。如科学计算,机器学习等。
I/O 密集型:顾名思义就是程序需要频繁进行输入输出操作。爬虫程序、数据分析与挖掘属于CPU+磁盘IO密集型。
CPU 密集型,建议使用多进程。
而多线程就更适合应用于 I/O 密集型程序。