进度概念,Java线程概论

By admin in 澳门新葡亰官网app on 2019年8月13日

多线程,多进度概念,四线程,进度概念

■什么是多线程:

多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。

使用线程的好处有以下几点:

·使用线程可以把占据长时间的程序中的任务放到后台去处理

·用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度

·程序的运行速度可能加快

·在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较游泳了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。


■什么是多进程:

进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就不必我多讲了吧,所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。 
在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。 多任务带来的好处是明显的,比如你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。那么这里就涉及到并行的问题,俗话说,一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个CPU,也就是说只有一颗心,要让它一心多用,同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的是“时间片轮转进程调度算法”,它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。但实际上在任何一个时间内有且仅有一个进程占有CPU。 
 如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。 
  在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系: 

  总线程数<= CPU数量:并行运行 

  总线程数> CPU数量:并发运行 

  并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。 

这里涉及到多任务操作系统的问题,多任务操作系统(如Windows)的基本原理是:操作系统将CPU的时间片分配给多个线程,每个线程在操作系统指定的时间片内完成(注意,这里的多个线程是分属于不同进程的).操作系统不断的从一个线程的执行切换到另一个线程的执行,如此往复,宏观上看来,就好像是多个线程在一起执行.由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务.Whoops

■什么是三十二线程:
多线程是为着使得八个线程并行的做事以成功多项职分,以进步系统的频率。线…

4.0 二十四线程基础,4.0十二线程

4.0-1.1 进程

  • 概念 : 进度是指在系统中正在运维的二个用到程序 (操作系统中每一个 应用程式正是三个进度)  
  • 本性 :
    每一种进程之间是单独的,每一种进程均运营在其专用且受保障的内部存款和储蓄器空间内

    进度为应用程序开垦独立的内存空间;(那块内部存款和储蓄器空间是独立的,受保险的!进度和进度之间是互不干扰的!)

  • 举个例子 : 例如同一时候开发QQ、Xcode,系统就能够分别运维2个经过
  • 翻看进度 : 通过“活动监视器”能够查阅Mac系统中所开启的进程
  • 有着的 UI 操作和 UI 事件都以进程

 

4.0-1.2 线程

  • 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)
  • 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行( 线程执行进程/应用程序中的代码)
举例 : 比如使用酷狗播放音乐、使用迅雷下载电影,都需要在线程中执行

 

  • 主线程:在一个应用程序启动之后,会默认开启一条线程
  • 子线程:主线程之外的线程(手动开启的)

  单个线程 – 串行:

概念 : 1个线程中任务的执行是串行的(在线程中的代码是按顺序执行的!同一时间内,只能有一个代码块执行!)
解析 : 如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务          也就是说,在同一时间内,1个线程只能执行1个任务
举例 : 比如在1个线程中下载3个文件(分别是文件A、文件B、文件C), 只能一个一个的下载
总结 : 因此,也可以认为线程是进程中的1条执行路径

澳门新葡亰官网app 1    

问题:为什么开启一条新线程之后就能解决卡住主线程这个问题了呢? 答: 因为线程和线程之间是并发执行(同时执行)!

    多个线程 – 并行:十六线程

概念 : 1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务
优点 : 多线程技术可以提高程序的执行效率
举例 : 比如同时开启3条线程分别下载3个文件(分别是文件A、文件B、文件C), 则分别同时下载

澳门新葡亰官网app 2    
4.0-1.3 【区别】进程 & 线程  
进度是由众多条线程组成,二个历程能够分包众多条线程,每条线程都得以举行不一的代码!
进度与线程的界别:

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

    4.0-2.1 二十二十四线程原理
十六线程原理:(为何多条线程之间可以出现(同不经常候)试行呢?)

本质 : 同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)          多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)
原理 : 如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象
思考:如果线程非常非常多,会发生什么情况?   答案 : 如果线程非常多,会在多条线程之间来回切换,消耗大量的 CPU 资源

  • 每个线程被调度的次数会降低
  • 线程的执行效率会下降

  CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源 每条线程被调度执行的频次会降低(线程的执行效率降低)

iOS 8.0 主线程的默认堆栈大小也是 512K

     4.0-2.2 三三十二线程优短处 多线程的优点 :

(1) 能适当提高程序的执行效率:

  •  并发执行(同时执行): 线程和线程之间是同时执行的!(不同的线程中,任务同时执行)  
(2) 能适当提高资源利用率(CPU、内存利用率)

澳门新葡亰官网app,  三十二线程的劣势 : (既然二十多线程这么爽, 线程是否越来越多越好呢?)

(1) 开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB的栈区空间),如果开启大量的线程,会占用大量的内存空间,降低程序的性能
(2) 线程开启越多,CPU 就需要在多条线程之间来回切换,CPU在调度线程上的开销就越大,CPU就越累!
(3) 开启线程会提高代码的复杂性(会使应用程序增加很多代码!代码变多之后,程序复杂性就会提高!) 程序设计更加复杂:比如线程之间的通信、多线程的数据共享

  提出: 在运动应用的付出中; 一般只开3~5条线程!     4.0-2.3
八线程在iOS开辟中的应用
  主线程 / UI线程:

概念 : 一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程” (程序启动创建的线程)
作用 : 

  • 显示 / 刷新UI界面
  • 处理UI事件(比如点击事件、滚动事件、拖拽事件等)
使用注意 : 

  • 别将比较耗时的操作放到主线程中
  • 要将耗时操作放在后台线程执行,否则会影响 UI 的流畅度,给用户一种’卡顿’的坏体验,破坏用户体验
  • 所有网络访问都是耗时操作!
解决方案 :

  • 将耗时操作放在子线程(后台线程、非主线程)
  • 那样就不会阻塞我们的主线程 , 一般开 3 ~ 6 条线程  

  好处 :

  • 在用户点击按钮那一刻就有反应
  • 能同时处理耗时操作和用UI控件的事件

  4.0-2.4 iOS中四线程的落到实处方案  
澳门新葡亰官网app 3        
       
借使您以为本篇文章对你富有扶助,请点击右下部“推荐”,^_^
   
作者:蓝田(Loto)
出处:
本文版权归笔者和天涯论坛共有,接待转发,但未经小编同意必须保留此段注解,且在小说页面鲜明地方给出原来的作品连接。
 


如有疑问,请发送邮件至 [email protected] 联系我。
      

八线程基础,4.0多线程 4.0-1.1 进程 概念 :
进度是指在系统中正在运营的多少个施用程序 (操作系统中每八个 APP就是四个经过) 性质 : 每一个…

.程序、进度、线程的定义以及界别

1.程序:Program指令集 静态概念
2.经过:Process操作系统 调节程序 动态概念(独立性 动态性 并发性)
  • 经过是程序的叁遍动态实践进度,占用特定的地方空间
  • 各种进程都以独立的,由3片段组成cpu,data,code
  • 短处:内部存储器的萧疏,cpu的担任
3.线程:Thread,是进程中一个”单一的连年调节流程”(a single sequential flow of control)/实行路线
  • 线程又被成为轻量级进度(lightweight process)
  • Threads run at the same time,independently of one another
  • 贰个历程能够具备五个相互的(concurrent)线程
  • 多个历程中的线程分享一样的内部存款和储蓄器单元/内部存款和储蓄器地址空间=>能够访问同一的变量和指标,并且它们从同一批中分配对象=>通讯、数据沟通、同步操作
  • 出于线程间的通讯是在一样地址空间上海展览中心开的,所以无需额外的通讯机制,那就使得通信更轻便并且音信传送的速度也越来越快。
区别 进程 线程
根本区别 作为资源分配的单位 调度和执行的单位
开销 每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销 线程可以看作是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的的运行栈和程序计数器(PC),线程切换的开销十分小
所处环境 在操作系统中能同时运行多个任务(程序) 在同一应用程序中有多个顺序流同时执行
分配内存 系统在运行的时候会给每个进程分配不同的内存区域 除了CPU之外,不会为线程分配内存(线程所用的资源是它所属的内进程的资源),线程组只能共享资源
包含关系 没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的 线程是进程的一部分,所以线程有时被称为轻权进程或者轻量级进程

小概念
1.在操作系统中,每种独立运转的次第正是三个经过(Process)
2.进度是操作系统举行财富分配和调节的二个单身单位
3.对于一个CPU来讲,在某有时间点只可以举办五个进度
4.CPU会到处在多少个经过之间交替试行
5.并发性和并行性是四个一般但又分歧的概念
互相之间是指三个事件在相相同的时候刻发生(一边吃饭一边打手提式有线电话机)
并发是指七个事件在同不日常候间隔内发生(暂停吃饭打手提式无线电话机,接着吃饭)

线程的亮点
1.多线程能够在八个主次中何况完结三个职务
2.八线程拓展了多进度的概念,线程也被称作轻量级进度
3.多进度与多线程之间的分别:
多进度之间的数据块是并行独立的,互不影响

多线程编制程序的独到之处
多线程之间共享内存,节约系统能源费用
丰硕利用CPU

团结概述
程序是静态的,是用Computer语言编写的吩咐集合。
经过是程序的动态实行进程;须要地点空间等一些财富,此能源由系统一分配配;每种程序对应二个进度。
线程指进度中的三个施行流程,贰个进度能够运作多少个线程。线程总是属于有个别进度,进程中的多少个线程分享进度的内存。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 澳门新葡亰官网app 版权所有