当前位置: 首页 > 图灵资讯 > 技术篇> 线程启动方法之Thread类的子类

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

来源:图灵教育
时间:2023-03-28 17:40:45

  学习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类子类启动线程技能。