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、负责垃圾回收的线程。

  • 相关阅读:
    python mysql Connect Pool mysql连接池 (201
    mysql: see all open connections to a given database?
    mysql int(3)与int(11)的区别
    Configure Amazon RDS mysql to store Chinese Characters
    Maximum length of a table name in MySQL
    JDBC Tutorials: Commit or Rollback transaction in finally block
    Java transient关键字使用小记
    Java构造和解析Json数据的两种方法详解二
    精选30道Java笔试题解答
    Visual Studio最好用的快捷键(你最喜欢哪个)
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181246.html
Copyright © 2011-2022 走看看