动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

线程启动方法之Thread类的子类

08-19 16:57 135浏览
举报 T字号
  • 大字
  • 中字
  • 小字

学习java语言,线程与多线程系列是少不了的学习内容,关于线程的基本内容在前面都有介绍学习过,今天来学习一个新的内容——Thread类的子类Thread类的子类是线程的启动方法之一,另一个启动线程的方法是利用 Runnable 接口的实现类的实例,在后面的文章再做总结,下面来具体说明线程启动方法之Thread类的子类的内容。

利用Thread类的子类实例来启动线程:

PrintThread(代码1)是表示连续输出10000次指定字符串的线程欲输出的字符串以构造器的参数指定,存储在message字段PrintThread 则声明为Thread类的子类

代码1表示连续输出10000次指定字符串的线程的PrintThread PrintThread .java),如下:

public class PrintThread extends Thread { 
private String message; 
public PrintThread(String message) { 
this.message = message; 
}
public void run () { 
for (int i = 0; i < 10000; i++) { 
System.out.print(message);
}
} 
}

下面这个程序则是先建立2个上面己声明的PrintThread类的实例,再利用它们来启动2个线程:

public class Main { 
public static void main(String[] args) { 
new PrintThread (”Good !”) .start(); 
new PrintThread (”Nice !”) .start(); 
}

}

main方法里,则建立PrintThread 类的实例后,立刻调用该实例的start方法(没有代入到变量的操作) 也就是:

new PrintThread (”Good !”) .start();

这是先建立PrintThread类的实例,将该实例的start方法调用出来的语句。

调用出start方法后,就会启动新的线程然后,这个线程再调用 PrintThread类的实例的run方法最后就变成是新启动的线程去进行连续输出 10000次“ Good!”的工作

为了让程序更简洁,所以上面只用1个语句启动线程。不过,请注意:“建立PrintThread类的实例”和“启动该实例所对应的线程”是两个完全不同的处理,即使己经建立了实例,仍然必须等到调用start方法才会启动线程。上面的语句也可以写成2个,即:

Thread t = new PrintThread (”Good !”);

t.start();

需要强调的是“ PrintThread 的实例”和“线程本身”是两个不同的部分

即使建立了PrintThread的实例,也还没有启动线程,而且就算线程己经结束,PrintThread 的实例不会就这样消失不见

主线程在Main类的main方法里启动2个线程因为main方法会立即结束,所以主线程也会立即结束,不过整个程序还没有结束。别忘了,在字符串输出结束之前,已经启动的2个线程都还活着。一直要等到所有线程都己经结束,程序才会结束当所有线程都结束这个程序才会正式结束

建立Thread类的子类、建立其实例、调用start方法……这是利用Thread

的子类以启动线程的方法。

通过实例介绍了利用Thread类的子类来启动线程,相信经过上面的讲解,大家学会了这个启动线程的方法,希望大家可以在自己的电脑上操作一遍,完全掌握利用Thread类的子类来启动线程这个技能。

0人推荐
共同学习,写下你的评论
0条评论
谨慎的老王
程序员谨慎的老王

6篇文章贡献19329字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消