(一)多线程基础篇 —— 线程创建的几种方式

 

目录

 

 

一,基础概念:

二,创建线程的几种方式:

三,线程状态

四,Thread使用start和run方法启动线程的区别

         五,Thread 类常用方法



 

一,基础概念:

 

1. 1 进程

   进程是操作系统进行资源分配最小单位,是应用程序运行的载体。一个进程包含多个线程。每一个进程都有它自己的内存空间和系统资源。举个例子:我们打开电脑的任务管理器,就可以看到每个应用程序运行的进程。

1.2. 线程

线程是cpu调度的最小单位。同一个进程内可以同时执行多个任务,每一个任务就可以看做是一个线程;


1.3CPU

CPU,全称Central Processing Unit,即中央处理器。何为CPU? 计算机必须能够自动地从主存中取出一条条指令执行,专门来执行指令的就是CPU。

 

1.4CPU上下文

CPU 寄存器:是 CPU 内置的容量小、但速度极快的内存。而程序计数器:用来存储 CPU 正在执行的指令位置、或者即将执行的下一条指令位置。它们都是 CPU 在运行任何任务前,必须的依赖环境,因此也被叫做CPU 上下文,每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU 寄存器和程序计数器

1.5 CPU 上下文切换

CPU 上下文切换,就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。举个例:同一个时刻一个CPU只能做一件事情,即同一时刻只能执行一个线程中的部分代码,假如有两个线程,Thread-0和Thread-1,刚开始CPU说Thread-0你先执行,给你3毫秒时间,Thread-0执行了3毫秒时间,但是没有执行完,此时CPU会暂停Thread-0执行并记录Thread-0执行到哪行代码了,当时的变量的值是多少,然后CPU说Thread-1你可以执行了,给你2毫秒的时间,Thread-1执行了2毫秒也没执行完,此时CPU会暂停Thread-1执行并记录Thread-1执行到哪行代码了,当时的变量的值是多少,此时CPU又说Thread-0又该你,这次我给你5毫秒时间,去执行吧,此时CPU就找出上次Thread-0线程执行到哪行代码了,当时的变量值是多少,然后接着上次继续执行,结果用了2毫秒就Thread-0就执行完了,就终止了,然后CPU说Thread-1又轮到你,这次给你4毫秒,同样CPU也会先找出上次Thread-1线程执行到哪行代码了,当时的变量值是多少,然后接着上次继续开始执行,结果Thread-1在4毫秒内也执行结束了,Thread-1也结束了终止了。CPU在来回改变线程的执行机会称之为线程上下文切换

1.6多线程:

多线程:指在一个进程下有多个线程。各个线程执行自己的任务。使用多线程有什么好处呢?举个例子:使用迅雷时可以下载多个任务。例如同时下载A,B,A下载进度到53.4%,B下载进度到47.1%,有时A速度快些,有时B速度快些,反正能确定的是A,B都在下载内容,而不是一定要等A下载完后,B才可以开始下载,这也是多线程的作用。因此,多线程强调”同时,一起进行“,而不是单一的顺下操作。

 

1.7并发

 讲并发之前,要先看一张图:

Concurrency,是并发的意思。并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序(或线程)之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。


1.微观角度:所有的并发处理都有排队等候,唤醒,执行等这样的步骤,在微观上他们都是序列被处理的,如果是同一时刻到达  的请求(或线程)也会根据优先级的不同,而先后进入队列排队等候执行。


2.宏观角度:多个几乎同时到达的请求(或线程)在宏观上看就像是同时在被处理。


3.通俗点讲,并发就是只有一个CPU资源,程序(或线程)之间要竞争得到执行机会。图中的第一个阶段,在A执行的过程中B,C不会执行,因为这段时间内这个CPU资源被A竞争到了,同理,第二个阶

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值