public class Runner implements Runnable {
@Override
public void run() {
for(int i = 0; i < 100; i++) {
System.out.println("Runner runs to --> " + i);
}
}
}
public class MultiThreadTest {
public static void main(String[] args) {
Runner r = new Runner();
//r.run(); // 方法调用,没有启动新线程
Thread t = new Thread(r);
//t.run(); // 方法调用,没有启动新线程
t.start(); // 启动新线程
for(int i = 0; i < 200; i++) {
System.out.println("Main goes " + i);
}
}
}
Runnable接口和Thread类的关系:
1. 首先有Thread implememts Runnable
2. 虽说Runnable有一个方法run(),但基本上Runnable可以看做是一个标记接口;Runnable本身并不提供多线程机制,只有Thread类才能启动新线程;Runnable的实现类只有传递给Thread构造器才有意义
3. Thread.run()默认会调用传递给Thread构造器的Runnable实现类的run(),如果没有Runnable实现类传进来的话,Thraed.run()方法什么都不做直接返回(可见Thread.run()是个空方法);但直接调用Thread.run()方法并不能启动新线程(直接调用Thread.run()方法相当于一般的方法调用,Runnable实现类的run()方法亦是如此),只有Thread.start()方法才能启动新线程;Thread.start()方法会调用Thread.run()方法
4. 定制自己的线程类的方法:
-> class Runner implements Runnable,实现run()方法,然后Thread t = new Thread(new Ruuner()); t.start();
-> class MyThread extends Thread,覆写run()方法,然后MyThread mt = new MyThread(); mt.start();
这两种方式又涉及到“接口还是继承”的设计原则问题了
分享到:
相关推荐
add 实验一:多线程/2.Runnable接口. 实验八:JDBC数据库编程二——存储过程与函数 add 实验八:JDBC数据库编程二——存储过程与函数/2.addTwoNumAndReturn. 实验十:Socket编程 add 实验十:Socket编程/...
1、Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。 2、多线程是并发执行的,交替占有cpu执行,请编写示例程序,并观察输出结果。 3、采用线程同步方法...
1. 什么是Runnable接口: 1.1 介绍Runnable接口 1.2 与Thread类的对比 2. 创建线程的方式: 2.1 继承Thread类 2.2 实现Runnable接口 3. 实现Runnable接口: 3.1 实现步骤 3.2 优点与用途 4. 启动线程: 4.1 使用...
Android学习笔记(三一):线程:Message和Runnable
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
Java多线程--创建多线程的基本方式二:实现Runnable接口
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。
1. 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。 学习线程之间的通信协调关系。 2. 使用 runnable 接口实现按两... 使用继承Thread类方式和实现Runnable接口两种方式实现。
在Java中只支持单继承,因此通过继承Thread类创建线程有一定的局限性,这时可以使用另一种方式,即实现Runnable接口来创建线程。通过这种方式需要在Thread(Runnable target)的构造方法中,传递一个实现了Runnable...
thread 线程类 实现runnable接口
分别用Thread类和Runnable接口实现的阶乘的计算过程及结果的显示(本来一开始设置的不要积分,不知道为啥变得需要积分了,故此调整一下)
本文首先介绍了线程的有关概念,接着介绍了线程的生命期及其状态间的转换,多线程的调度 原则,线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口
Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并...
RunnableThread1.java
java多线程runnable实例,经过测试的,可以直接运行
声明自定义线程类实现Runnable接口实现奇数/偶数序列线程并发执行。
主要内容 线程的概念 线程的生命周期 Java中多线程的编程 继承Thread类与使用Runnable接口 Thread类的主要方法 线程的同步与死锁 动画
继承Thread类实现多线程: 1. 在Java中负责实现线程功能的类是java.lang.Thread 类。 2. 可以通过创建 Thread的实例来创建新的线程。 3. 每个线程都是通过某个特定的Thread对象所对应的方法run( )来完成其操作的,...
实现Runnable接口的类必须使用Thread类的实例才能创建线程,通过Runnable接口创建线程分为以下两步
java application multiThread clock,模拟时钟(AWT程序、Runnable接口),有时、分、秒针 编写一个应用程序,创建三个线程分别显示各自的时间。