Java多线程(一) 什么是线程

声明:本系列大可能是翻译自https://www.javatpoint.com,加上本身的增删改,尽力写的系统而通俗易懂,后文再也不重复声明。html

点我跳过黑哥的卑鄙广告行为,进入正文。java

 

Java多线程系列更新中~编程

  正式篇:多线程

  1. Java多线程(一) 什么是线程
  2. Java多线程(二)关于多线程的CPU密集型和IO密集型这件事
  3. Java多线程(三)如何建立线程
  4. Java多线程(四)java中的Sleep方法
  5. Java多线程(五)线程的生命周期

  番外篇(神TM番外篇):函数

  1. Java 过一下基础
  2. 转载:java中Thread.sleep()函数使用
  3. Java多线程 Socket使用

 

Java的多线程是一个同时执行多个线程的过程。spa

线程是一个轻量级的子进程,是最小的处理单元。多线程和多进程都用于实现多任务处理。线程

可是,咱们使用多线程而不是多进程,由于线程使用共享内存区域,它们不分配单独的内存区域以节省内存,并且线程之间上下文切换比进程花费的时间更少。翻译

用一个东西以前,总得了解一下它的优势,这样才有动力看下去,这里咱们先看一下多线程的优势。htm

Java多线程的优势

  1. 它不会阻塞用户,由于线程是独立的,你能够同时执行多个操做,举个栗子,你须要一个延时,等待三秒钟再进行接下来的操做,若是你使用单线程,它就真的等了你三秒,这三秒,啥都不干,啥都得放一边,就等。。。这明显是不可接受的。
  2. 你能够同时执行多个操做,节省时间。这里面又牵扯到CPU密集型和IO密集型的问题,能够看这篇文章:关于多线程的CPU密集型和IO密集型这件事
  3. 线程是独立的,死掉一个,不影响另外一个。

多任务处理

多任务处理是同时执行多个任务的过程,咱们使用多任务处理来尽量增大CPU的利用率。多任务处理能够经过两种方式实现,没错,多线程和多进程。blog

  1.多进程

    • 每一个进程在内存中有一个地址,分配一个单独的内存区域
    • 进程是重量级的
    • 通讯成本比较高
    • 切换进程须要一些时间来保存和加载寄存器,内存映射等

  2.多线程

    • 线程共享相同的地址空间
    • 轻量级
    • 通讯成本比较低

什么是JAVA中的线程

 线程是一个轻量级的子进程,是最小的处理单元。以下图:

  

  一个系统下能够有多个进程,一个进程中又有多个线程。

JAVA Thread类

Java提供了Thread类来实现线程编程,至于怎么作,且看下文。