学习java语言,线程与多线程系列这是一个不可或缺的学习内容。前面介绍了线程的基本内容。今天,让我们学习一个新的内容——Thread类子类。Thread类子类它是线程的启动方法之一,另一种启动线程的方法是利用 Runnable 接口实现类实例,总结后面的文章,具体说明线程启动方法Thread类子类的内容。
利用Thread类子类实例启动线程:
PrintThread(代码1)表示连续输出指定字符串10000次的线程。待输出的字符串应存储在构造器的参数中mesage字段Printthredadad 声明是Thread的子类。
代码1表示连续输出Printthread10000次指定字符串的线程 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); } } }
下面的程序是先建立的上面自己声明的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方法才能启动线程。上面的句子也可以写成两个,即:
Thread t = new PrintThread (”Good !”);
t.start();
需要强调的是“ PrintThread 的实例”和“线程本身”是两个不同的部分
即使建立了Printthread的例子还没有启动线程,即使线程已经自己了结束,PrintThread 的实例也不会所以消失了。
主线程在Mainmain方法启动2个线程,因为main方法会立即结束,所以主线程会立即结束,但整个程序还没有结束。别忘了,在字符串输出结束之前已经开始了2所有的线程都还活着。直到所有的线程都结束,程序才结束。,所有的线程都结束了,这个程序将正式结束。
建立Thread类子类,建立实例,调用start方法……这是利用Thread
以启动线程的方式启动子类。
通过实例介绍利用Thread类子类启动线程,我相信在上述解释之后,我们学会了启动线程的方法,我希望你能在自己的电脑上再次操作,完全掌握利用Thread类子类启动线程技能。