线程知识的学习 一

线程之上——进程

在开始这篇博客主题——线程 之前,我们先来了解一下线程周边的一些概念,任何东西都不是孤立的,要想深入的理解一个知识,了解它的来源,它的环境是很重要的。那么线程的周边是什么样的环境呢?

首先,线程的大环境是操作系统,其次是让线程运动起来的大Boss——进程。操作环境,这个太复杂,这里不说了。我们来简要的说说进程这大Boss。

进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,比如在Windows系统中,一个运行的exe就是一个进程。也就是说
程序本身并不能单独运行,只有将程序装载到系统的内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。所以程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。

我截取了本机的操作系统中的图来说明(任务管理器),看完图,相信进程已经在你心中有位置了。

这里写图片描述

由图也可以说明,我们的操作系统是多任务的操作系统。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU。

线程和进程的关系这里有一个很好的解释与大家共享:线程和进程的趣解

还有一点就是:进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们才称其为进程。
接下来,我们主要来说线程。

执行任务的兵——线程

什么是线程呢?—— 兵

第一段中说到了进程是一个执行着的程序,那么怎么执行?答案就跟线程有关。进程带着任务来到操作系统中,然后找了几个人帮他实现这个功能,这就是所谓的:一个进程中可以启动多个线程。线程就是真正干活的兵。它的直接上司是进程。每个线程的任务是进程分派给它的。

举个小例子:如果把我们上课的过程看成一个进程的话,那么我们要做的是耳朵听老师讲课,手上还要记笔记,脑子还要思考问题,这样才能高效的完成听课的任务。那么我们把这三种分工:耳朵,手,脑子叫做线程,只有这三个 “兵” 结合起来,这个听课的任务算是合格的完成了。话又说回来了,如果其中一个线程 罢工,例如,手罢工了,那么这个听课效率就不高,或者说,手是在耳朵和脑袋之后才开始的工作,那么同样是听课一件事,把 “手做笔记” 放到了 “耳朵,脑子” 之后,那么就是延长了听课的时间,这就好比进程的效率没有,这就是我们平常说的性能问题吧。

以上的例子,还说明了一个问题,耳朵,脑子,手,在同一时间内工作,这就是并发,难道这就是我们所谓的并发编程?多线程?

那么,我们来围绕线程来谈谈线程的这些事情,先看一张宏观的图如下:
这里写图片描述

接下来的几篇博客,我们将按照图中的索引号来一起开始我们的线程之行。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值