当前课程知识点:JAVA程序设计进阶 >  第一章 线程(上) >  1.2 通过Thread类创建线程 >  Video

返回《JAVA程序设计进阶》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《JAVA程序设计进阶》慕课在线视频列表

Video课程教案、知识点、字幕

今天这一节我们将介绍

如何去创建线程

JAVA语言当中

创建线程有两种方式

那我们在这一节中

将介绍第一种方式

通过Thread类来创建线程

Thread类直接继承于Object类

它实现了Runnable接口

它是位于java.lang这个包当中

Thread类封装了

线程对象需要的属性和方法

那我们需要写一个子类

来继承Thread类

那我们这个子类当中

就需要重写它的run方法

把我们想需要执行的代码

放入到run方法当中

需要提醒大家的是

启动一个线程的话

是通过start方法来启动新线程

而不是直接去运行run方法

下面我们看一下这个例子

我们要在新线程中

完成计算某个整数的阶乘

我们定义一个类

叫这个FsctorialThreadTester

里面有一个主方法

主方法的话第一句话

是打印出在主线程已经开始

然后我们又实例化了

FsctorialThread

这个类的一个对象

我们给它名字叫Thread

然后调用它的构造方法

那给它的参数是10

紧接着调用thread start方法

注意在这里不是调用run方法

而是调用thread方法

这就意味着这个线程已经启动

启动完了以后

就由我们的线程调度器

来去调度这个线程的执行

那在执行线程的时候

它就会执行我们的线程

所对的run方法

而这个线程开始启动以后

我们最后一行代码是

打印出主线程结束了

我们再看一下这个

FsctorialThread

它的内容是什么

它继承了我们的Thread类

它有一个私有的成员变量num

然后这是它的构造方法

构造方法当中

只不过是把参数num传进来

我们再看一下它的主方法

在主方法当中

实现这一个阶乘的计算过程

那在阶乘计算之前的话

它会首先打印

说新的线程开始

就是new thread started

然后开始计算

算完后把结果打印出来

最后会显示new thread ends

也就是说这个新的线程结束了

我们来看一下

整个程序的运行结果

大家看第一个

main thread starts

主线程启动了

然后马上又看到

main thread ends

主线程结束了

那其实说明什么

我们这个JAVA类的主方法

在它运行的过程当中

实际上主方法就是一个线程

那我们在主方法中

实例化出的另外一个线程

我们看它叫new thread

new thread started

表明这个新的线程这个开始了

然后又列出了

我们计算阶乘的结果

然后最后显示出新的线程结束了

那在这个例子当中

我们可以看到

主线程已经执行完了以后

新的线程才开始执行

并且执行完

那在我们主线程的main方法当中

我们调用thread start方法

启动我们的新的线程

但是并不意味着

它是马上就开始执行

因为产生线程以后

如何调度这个线程的执行

是由我们线程的调度器

来去调度的

那在我们这个例子当中

你可以看到至少有两个线程

一个就是我们的主线程

一个就是我们自己新产生的线程

那从我们目前执行的结果来看

我们的主线程先执行结束

其次才是我们新产生的线程

如何通过Thread类来创建线程

就介绍到这里

谢谢大家

JAVA程序设计进阶课程列表:

第一章 线程(上)

-1.0 导学

--Video

-1.1 线程的基本概念

--Video

-1.1 线程的基本概念--作业

-1.2 通过Thread类创建线程

--Video

-1.2 通过Thread类创建线程--作业

-1.3 线程的休眠

--Video

-1.3 线程的休眠--作业

-1.4 Thread类详解

--Video

-1.5 通过Runnable接口创建线程

--Video

-1.5 通过Runnable接口创建线程--作业

-1.6 线程内部的数据共享

--Video

第二章 线程(中)

-2.0 导学

--Video

-2.1 线程同步的思路

--Video

-2.2 线程同步的实现方式—Synchronization

--Video

-2.3 线程的等待与唤醒

--Video

-2.4 后台进程

--Video

-2.5 线程的生命周期与死锁

--Video

-2.6 线程的调度

--Video

第三章 线程(下)

-3.0 导学

--Video

-3.1 线程安全与线程兼容与对立

--Video

-3.2 线程的安全实现-互斥同步

--Video

-3.3 线程的安全实现-非阻塞同步

--Video

-3.4 线程的安全实现-无同步方案

--Video

-3.5 锁优化

--Video

第四章 网络编程(上)

-4.0 导学

--Video

-4.1 URL对象

--Video

-4.2 URLConnection对象

--Video

-4.3 Get请求与Post请求

--Video

-4.4 Socket通信原理

--Video

-4.5 Socket通信实现

--Video

第五章 网络编程(下)

-5.0 导学

--Video

-5.1 Socket 多客户端通信实现

--Video

-5.2 数据报通信

--Video

-5.3 使用数据报进行广播通信

--Video

-5.4 网络聊天程序

--Video

第六章 Java虚拟机

-6.0 导学

--Video

-6.1 Java虚拟机概念

--Video

-6.2 Java虚拟机内存划分

--Video

-6.3 Java虚拟机类加载机制

--Video

-6.4 判断对象是否存活算法及对象引用

--Video

-6.5 分代垃圾回收

--Video

-6.6 典型的垃圾收集算法

--Video

-6.7典型的垃圾收集器

--Video

第七章 深入集合Collection

-7.0 导学

--Video

-7.1 集合框架与ArrayList

--Video

-7.2 LinkedList

--Video

-7.3 HashMap与HashTable

--Video

-7.4 TreeMap与LinkedHashMap

--Video

-7.5 HashSet

--Video

第八章 反射与代理机制

-8.0 导学

--Video

-8.1 Java反射机制

--Video

-8.2 Java静态代理

--Video

-8.3 Java动态代理

--Video

-8.4 Java 反射扩展-jvm加载类原理

--Video

-8.5 Java进阶课程总结

--Video

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。