了解线程

这里先引入两 个概念:
线程 : Thread 进程:Process
想要了解线程,需要先了解一下进程.
进程的概念: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。(想要了解更多内容(https://baike.baidu.com/item/%E8%BF%9B%E7%A8%8B/382503 ))

线程的概念:线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。在单个程序中同时运行多个线程完成不同的工作,称为多线程。(想要了解更多内容(https://baike.baidu.com/item/%E7%BA%BF%E7%A8%8B/103101))

程序 和 进程 的关系:

     程序是静态的,实质 为  一套指令的集合

     程序一旦被 加载到内存中,被CPU执行,则会相应地产生一个或多个进程(动态的).

关闭进程,则其相对应的 程序运行 被终结

为什么提出线程的概念:

一个进程中可能包含多个子任务,多个子任务可以独立运行.而每个线程对应一个子任务,cpu可以对各个线程进行独立调度
 使得cpu调度的粒度更细,从而降低进程间切换的资源消耗.

cpu的调度问题:
这里涉及到 时间片的理念:

将cpu的执行时间视作一种资源,为了使计算机支持多任务模式,需要岁cpu的执行时间进行小粒度切分.
切分后,可以将时间片分配多个程序使用(时间片不应过长,防止资源被一个进程长时间占领使用.  
也不应过短,导致资源浪费在进程间的切换)
(可以看做一个比喻:两个人用一根笔,每一个人使用时间不应过短(比如每个人用2秒),否则时间都浪费在了轮换交接中,
时间也不应过长(比如2小时),一个人长时间占领资源,而另一个人则一直在等待资源被释放,资源利用率低下)

对于单核cpu的计算机
从宏观的角度来看: 计算机可以同时处理多个任务(音乐,视频,文档,浏览网页…).
从微观的角度来看:计算机在某个时刻,只有一个任务在执行(任务间切换的时间非常短,
让人产生错觉以为是多任务同时进行).(可类比动画的 机理,当静态的画面以一定速度翻阅,就会产生动画的效果)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值