多线程的2种实现方式

简介: 多线程的2种实现方式

      说到线程,首先想到的是进程的概念。

       进程:是一个正在执行中的程序。每一个进行执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。

       线程:就是进程中的一个独立的控制单元。线程在控制着进程的执行。

       进程vs线程:一个进程中至少有一个线程。

       Java VM 启动的时候会有一个进程java.exe该进程中至少一个线程负责Java程序的执行。而且这个线程运行的代码存在于main方法中。该线程称之为主线程。

创建线程的2种实现方式:

       1、继承Thread。

       2、实现Runnable。

继承Thread的步骤:

       1、继承Thread方法。

       2、复写Thread类中的run方法

               目的:将自定义代码存储在run方法。让线程运行。

       3、调用线程的start方法。

               作用2个:启动线程;调用run方法。

实现Runnable的步骤:

       1、定义类实现Runnable接口

       2、覆盖Runnable接口中的run方法

               将线程要运行的代码存放在该run方法中。

       3、通过Thread类建立线程对象。

       4、将Runnable接口的子类对象作为实际参数传递给thread类的构造方法

               因为自定义的run方法所属的子类对象是Runnable接口的子类对象。所以要让线程去指定对象的run方法。就必须明确该run方法所属对象。

       5、调用Thread类的start方法开启线程并调用runnable接口子类的run方法。

两种方式对比:

       它们的线程代码存放的位置不一样。

       继承Thread:线程代码存放Thread子类run方法中。

       实现Runnable:线程代码存在接口的子类的run方法中。

       实现Runnable接口的方式避免单继承的局限性。


       线程的运行状态:创建、运行、冻结、消亡、阻塞。

135514bc58383cb682306d777d6a2f6a_20170805220819121.png

   冻结到运行之前,先到阻塞状态(此时具有执行资格),等待cpu资源。拿到cpu资源了,也就是具有了执行权限了,才会进入运行状态。

总结:

   多线程,在有一定的代码量的基础上去理解,更有一种水到渠成的感觉。

   下一篇会介绍多线程的线程安全问题。


相关文章
多线程学习(二) 多线程创建4种方式
多线程学习(二) 多线程创建4种方式
63 0
|
5月前
|
大数据 C#
C#实现多线程的几种方式
C#实现多线程的几种方式
多线程的线程工具的初步使用和原理详解
多线程的线程工具的初步使用和原理详解
74 0
|
Java 调度
多线程学习之多线程的三种实现方式及应用
多线程学习之多线程的三种实现方式及应用
58 0
|
Java API 调度
多线程的操作
多线程的操作
48 0
|
缓存 Java 数据库
项目中使用多线程的场景,多线程的优缺点
项目中使用多线程的场景,多线程的优缺点
202 0
|
设计模式 存储 安全
多线程(六):多线程案例
多线程(六):多线程案例
116 0
多线程(六):多线程案例
|
Java
Java实现多线程的第三种方式及多线程实现的方式间的比较
再调用get方法,就可以获取线程结束之后的结果。(==get方法一定要放在start之后执行,因为它是获取线程结束之后的结果,如果线程还没有开启或结束,那么get会在那卡着一直等==)
109 0
Java实现多线程的第三种方式及多线程实现的方式间的比较
|
存储
多线程原理和实现方式
多线程原理和实现方式
201 1
多线程之常见方法使用
线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;进程是系统资源分配的单位,线程是系统调度的单位。一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;进程之间相互独立,进程之间不能共享资源,而线程共享所在进程的地址空间和其它资源。同时线程还有自己的栈和栈指针,程序计数器等寄存器。