java Runnable接口如何创建线程
导语:编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。下面是java Runnable接口创建线程的相关资料,欢迎阅读:
java Runnable接口创建线程
创建一个线程,最简单的方法是创建一个实现Runnable接口的类。
为了实现Runnable,一个类只需要执行一个方法调用run(),声明如下:
public void run()
你可以重写该方法,重要的是理解的run()可以调用其他方法,使用其他类,并声明变量,就像主线程一样。
在创建一个实现Runnable接口的`类之后,你可以在类中实例化一个线程对象。
Thread定义了几个构造方法,下面的这个是我们经常使用的:
Thread(Runnable threadOb,String threadName);
这里,threadOb 是一个实现Runnable 接口的类的实例,并且 threadName指定新线程的名字。
新线程创建之后,你调用它的start()方法它才会运行。
void start();
实例
下面是一个创建线程并开始让它执行的实例:
// 创建一个新的线程
class NewThread implements Runnable {
Thread t;
NewThread() {
// 创建第二个新线程
t = new Thread(this, "Demo Thread");
tln("Child thread: " + t);
t(); // 开始线程
}
// 第二个线程入口
public void run() {
try {
for(int i = 5; i > 0; i--) {
tln("Child Thread: " + i);
// 暂停线程
p(50);
}
} catch (InterruptedException e) {
tln("Child interrupted.");
}
tln("Exiting child thread.");
}
}
public class ThreadDemo {
public static void main(String args[]) {
new NewThread(); // 创建一个新线程
try {
for(int i = 5; i > 0; i--) {
tln("Main Thread: " + i);
p(100);
}
} catch (InterruptedException e) {
tln("Main thread interrupted.");
}
tln("Main thread exiting.");
}
}
编译以上程序运行结果如下:
Child thread: Thread[Demo Thread,5,main]
Main Thread: 5
Child Thread: 5
Child Thread: 4
Main Thread: 4
Child Thread: 3
Child Thread: 2
Main Thread: 3
Child Thread: 1
Exiting child thread.
Main Thread: 2
Main Thread: 1
Main thread exiting.
-
2017年3月计算机二级Java基础知识习题
学习是把知识能力思维方法等转化为你的私有产权的重要手段,是“公有转私”的重要途径。以下是本站小编汇总的2017年3月计算机二级Java基础知识习题,欢迎学习!1、结构化程序设计主要强调的是______。A、程序的规模B、程序的易读性C、程序的执行效率D、程序的可移...
-
21个java基本知识点
本文主要是一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。1.JVM相关(包括了各个版本的特性)对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很...
-
关于Java程序员面试中的多线程问题总结
很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(CollectionsFramework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了Java线程方面一些典型的问题,这些问题经常被高级工程师所问到。0、Java中多线程同步是什么?在多线程程序下,同步能控...
-
编写更好的Java单元测试的7个技巧
测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。虽然有三种主要类型的软件测试:单元测试,功能测试和集成测试,但是在这篇博文中,我们将讨论开发人员...
相关文章
- Java中break、continue、return语句的使用区别对比介绍
- Java中break、continue、return语句的使用区别对比
- 解析Java中如何获取Spring中配置的bean
- java的String=a; a==null和a.equals(null)这两个判断有什么区别
- java Runnable接口创建线程详解
- A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英语作文
- Java类如何获取Spring的bean
- java如何利用java.net.URLConnection发送HTTP请求
- Java中如何获取Spring中配置的bean
- JavaRunnable线程编写接口代码