当前课程知识点:JAVA程序设计进阶 >  第一章 线程(上) >  1.5 通过Runnable接口创建线程 >  Video

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

Video在线视频

Video

下一节:Video

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

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

我们知道创建JAVA线程

有两种方式

刚才我们已经介绍完第一种方式

下面这一节我们介绍第二种方式

通过Runnable接口来创建线程

那Runnable接口里面

只有一个方法就是run方法

所以说从实现接口的

这个角度来说

你只需要实现run方法就可以了

那我们之前碰到的Thread类

实际上它也是实现了

Runnable接口

那采用Runnable接口

来构造线程的话

它有个好处是便于

多个线程之间共享资源

另外由于我们的JAVA

在语法上不支持多重继承

如果我们定义的某个类

已经继承了其它类的话

同时你又想让它实现线程的功能

那你就可以让它去实现

接口Runnable

对于线程的话它的启动

还是用start方法来去启动

我们可以换成

用Runnable接口的方式

来实现一下上面的那个例子

那我们这个例子是这样的

public class

FactorialThreadTester

然后我们看一下主方法

主方法里面的第二行

就是FactorialThread t

=new FactorialThread10

那这个方法

我们是构造了一个这个线程

那这个线程只不过是它这个类

它本身是实现了

Runnable这个接口

紧接着再去调用这个线程

就是new Thread t.start

让它进行启动

那我们看具体这个类

是怎么定义的

class FactorialFhread

implements Runnable

这个类实现了接口Runnable

那实现了接口的话

就要求说你一定要实现run方法

那在这个run方法里面的话

大家可以看到

把这些你想执行的代码

都放进去了

那刚才是用Runnable接口

实现一个单一线程的例子

那我们下面再看一看

用Runnable接口

实现多个线程的例子是怎么样的

我们看这个代码

public class

ThreadSleep Tester

我们看这个主方法

主方法里面构造了三个线程

thread1 thread2 thread3

是它的类型是TestThread

然后紧接着打印出来说

线程启动了 然后三个线程

调用它的start方法来进行启动

最后的话就是我们的输出

线程已经结束了

我们来看一下TestThread这个类

是怎么实现的

它最主要是实现了接口Runnable

那在它这个类里面定义了

私有的成员变量sleepTime

然后在它的构造方法里面

去随机生成了一个随机数

然后0到6000毫秒

然后把它复制

给我们的sleepTime

我们再看它的run方法

那在run方法里面

只要是打印出线程的名字

以及它要计划休眠的时间

紧接着这个线程调用sleep方法

来去进行休眠

那其实我们这个例子

是为了说明说

如何用Runnable接口

来去实现 去构造我们的线程

我们可以比较一下

两种线程构造方式

使用Runnable接口

来构造线程的话

它有一个很大的好处

就相当于把CPU代码和数据分开

形成一个非常清晰的模型

那实际上Runnable接口中

我们所实现的这些run方法

就是我们这个线程

想要执行的代码

那另外一个好处就是说

由于JAVA是单一继承

那我们通过实现

Runnable接口的同时

还可以这个继承其它的类

那另外一种构造方式

就是通过直接继承Thread类

来去构造线程

那它的好处就是编写简单

它直接继承Thread类

然后重写run方法

把我们线程当中

想要执行的代码

直接就放到run方法里面

当然它的不好的地方是什么呢

可能我们这个线程

想继承其它类

但是由于我们继承了Thread类

就不能继承其它类

这是我们采用直接继承Thread类

来构造线程它的一个不好的地方

这一节我们介绍了

如何使用Runnable接口

来创建线程

并且和上面一种方法进行了比较

这就是本节的内容

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笔记与讨论

也许你还感兴趣的课程:

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