一.线程的基本概念
1、入题:我们大家都知道,我们可以在一台计算机上同时聊天,看电影,下载视频等,完成上述任务的各个程序之间是完全相互独立的。但是他们在同一段时间内又同时处于运行状态。当然呢,它们在这一段时间内是分时使用计算机CPU时间的。只不过呢在CPU处理速度很快,划分的时间片段很短,所以给大家感觉上是多个程序在同时运行。
2、进程:
进程是程序的一次动态执行过程。这个过程包含了从程序代码从硬盘加载到内存、在内存中执行、执行结束等过程,实际上也就是进程的产生、发展、消亡的一个过程。
另外,每个进程都有自己的独立的地址空间和占用的系统资源,在进程执行结束后,进程会释放系统资源还给系统,供其他程序使用。
3、线程:
线程是比进程更小的一个执行单位,它是一段完成特定功能的代码。
一个进程中可以包含多个线程。
与进程不同的是:同类线程将共享进程的地址空间和系统分配给进程的系统资源。线程本身并不占用资源,或者说只占用很少的一部分资源,通常只是寄存器中的数据及供程序使用的堆栈等。因此说在同一个进程的不同线程之间进行切换时,所花费的开销比在进程间切换小很多。所以,线程又被称为轻量级进程。
4、java多线程:
一个进程中可以同时运行多个线程,每个线程执行不同的任务。
5、多线程的好处:
通过多线程程序设计,就可以将程序任务划分成几个并行执行的子任务,从而提高整个程序的执行效率和系统资源的利用率
二.线程的创建方式
线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。
每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护程序。
当 Java 虚拟机启动时,通常都会有单个非守护线程(它通常会调用某个指定类的 main 方法)。Java 虚拟机会继续执行线程,直到下列任一情况出现时为止:
- 调用了 Runtime 类的 exit 方法,并且安全管理器允许退出操作发生。
- 非守护线程的所有线程都已停止运行,无论是通过从对 run 方法的调用中返回,还是通过抛出一个传播到 run 方法之外的异常
Thread类的其中的两个构造方法
实例一:在Thread子类覆盖的run方法中编写运行代码:
运行结果:
实例二:在传递给Thread类的Runnable对象的run方法中编写运行代码
运行结果:
那么大家可以思考这样两个问题:
问题一、如果Thread类的run方法被覆写了,并且为Thread类传递的Runnable对象的run方法也编写了运行代码?那么程序会执行哪一个run方法呢?
实例三:来说明上述问题
运行结果为:
总结:在Thread子类的run方法和传递给Thread的Runnable对象的run方法都被覆写的时候,程序执行Thread子类的run方法。
问题二:如果Thread类的run方法没有被覆写,并且为Thread类传递的Runnable对象的run方法也编写了运行代码?那么程序会执行哪一个run方法呢?
总结:显然是调用Runnable对象的run方法:实例二已经证明
下一篇将讲述Thread的两种创建方法
分享到:
相关推荐
并发库高级应用\多线程\Java
张孝祥Java多线程与并发库高级应用学习笔记,很经典的学习多线程和并发的资料。张孝祥Java多线程讲义笔记由张孝祥亲自整理,很实用的。
Java多线程与并发库高级应用视频教程22集资源目录:【】01传统线程技术回顾【】02传统定时器技术回顾【】03传统线程互斥技术【】04传统线程同步通信技术【】04传统线程同步通信技术_分割纪录【】05线程范围内共享...
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-...
详细的讲述了多线程的各种用法 Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠...
Java 模拟线程并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发
Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释 3 四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java...
经典Java多线程与并发库高级应用经典Java多线程与并发库高级应用经典Java多线程与并发库高级应用经典Java多线程与并发库高级应用
黑马+传智 Java入门到精通视频教程+课件+代码,30套Java开发项目代码,Java多线程与并发库高级应用视频教程,及电子书,面试题,开发工具等
Java 多线程与并发-Java并发知识体系详解
JAVA多线程与并发学习总结.pdf
Java 多线程与并发(1_26)-Java 并发 - 理论基础
Java 多线程与并发(2_26)Java 并发 - 线程基础
java多线程与高并发java多线程与高并发java多线程与高并发
马士兵老师课程笔记 https://www.bilibili.com/video/BV1of4y1p74A?p=45
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。.......................................JAVA线程、线程池资料----下载不扣分,回帖加1分,欢迎下载,童叟无欺JAVA线程、...