zoukankan      html  css  js  c++  java
  • Java基础——多线程(一)——多线程概述

    进程与线程

    进程:正在进行中的程序(直译)。是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程是程序执行的最小单位。

    线程:就是进程中一个负责程序执行的控制单元(执行路径)。是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。进程是操作系统分配资源的最小单位。

     

    PS:

    1、一个进程之中最少要有一个线程。

    2、开启多个线程是为了同时运行多部分代码。

    3、每一个线程都有自己运行的内容。这个内容可以成为线程要执行的任务。

    什么是多线程?

      一个进程中可以有多个执行路径,称之为多线程。

    要理解多线程,首先要知道什么是单线程。

    提到多线程这里要说两个概念,就是串行(单线程)和并行(多线程),搞清楚这个,我们才能更好地理解多线程。

    串行(单线程):其实是相对于单条线程来执行多个任务来讲的,拿下载文件来举例子:当我们下载多个文件时,在串行(单线程)中它按照一定的顺序去进行下载,也就是说,必须等下载完A之后才能开始下载B然后在下载C,时间上是不可能发生重叠。

    即:任务A-->任务B-->任务C

    并行(多线程):下载多个文件,开启多条线程,多个文件同时进行下载,这里是严格意义上的,在同一时刻发生的,并且在时间上是重叠的。

    了解了这两个概念之后,我们再来说说什么是多线程。举个例子,我们360安全卫士,360安全卫士本身就是一个程序(可以看做是一个进程),它里面有很多的功能,比如体检、木马查杀、电脑清理、系统修复等等···

    按照单线程来说,无论你想要体检、还是要木马查杀,那么你必须先执行完一个功能后,才能执行下一个任务,这里面是有一个执行顺序的。

    如果是多线程的话,我们其实在清理垃圾的时候,还可以进行木马查杀、系统修复等等其他的操作,这个是严格意义上的同一时刻发生的,没有执行上的先后顺序。即:一个进程运行了多个线程。

    多线程的好处与弊端

    好处:解决多部分同时运行的问题。

    弊端:线程太多会导致效率的降低。

    其实应用程序的执行都是CPU在做着快速的切换完成的。这个切换时随机的。

    JVM中的多线程

    JVM启动时就启动了多个线程,至少有两个线程可以分析的出来。

    1、执行main函数的线程

    该线程的任务代码都定义在main函数中。

    2、负责垃圾回收的线程。

  • 相关阅读:
    react-document-title
    react-router
    redux-saga 异步流
    redux
    redux-thunk
    react-router-redux
    [翻译] ClockView 时钟
    [翻译] MZTimerLabel 用作秒表或者倒计时
    [翻译] MCProgressView 使用自定义图片做进度显示
    [翻译] ADPopupView 触摸弹出视窗
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181246.html
Copyright © 2011-2022 走看看