从CPU说起
上图取自某东,标注了三款的cpu的参数,我们只需关注cpu核心这栏,这里三款cpu都是6核12线程, 请看下图
矩形盒子代表的是一个cpu 而里面有6个核心,理论上一个核心在某个时间节点只能处理一个任务,但现在随着技术的发达 一个核心可以处理多个线程任务,好比原来的单核是条单车道,6核12线程就是6条双车道,最多时可同时处理12个线程任务。
线程与进程
上面提到线程任务,那什么是线程呢?说到线程就必须提到进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。
打开winwows任务管理器 可以这个运行了多个程序,qq就是一个进程,而进程是线程的容器,
一个杀毒软件可以漏洞修复和垃圾清理同时进行 他们就分别是独立的线程 而且在一个进程内
那么我们看看线程的含义:
线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指令运行时的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
单核cpu理论上在一个时间节点上只能处理一个线程任务,但是现在多核多线程技术加时间片轮转调度让我们能边听歌边写代码。
多线程
我们假设一个卖票的窗口,总共有100张票 分三张窗口售卖,那此时就需要利用多线程技术。
这个整体卖票的过程可以看做是一个进程在运行 而三个窗口分别运行即三个线程的运行。
总结
线程是计算机抽象的一个相当重要的基础概念,我们需要知道
线程是程序执行流的最小单元
进程是线程的容器
一个进程内可以有多个线程
多核多线程技术能让多个线程并行处理
在下一遍我们将利用java编程来实现三个窗口卖票的程序,尽请期待~~~
网友评论