快速业务通道

Java编程那些事儿94——多线程实现方式1 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
是线程规律执行的,其实真正的线程执行顺序是不能直接保证的,系统在执行多线程程序时只保证线程是交替执行的,至于那个线程先执行那个线程后执行,则无法获得保证,需要书写专门的代码才可以保证执行的顺序。

其实,上面的代码可以简化,简化以后的代码为:

/** * 以继承Thread的方式实现线程2 * 使用方法简化代码 */ public class SecondThread extends Thread{  public static void main(String[] args) {   //初始化线程   SecondThread ft = new SecondThread();   //启动线程   ft.start();   print("main:");  }  public void run(){   print("run:");  }  private static void print(String s){   try{    for(int i = 0;i < 10;i++){     //延时1秒     Thread.sleep(1000);     System.out.println(s + i);    }   }catch(Exception e){}  } }

Java编程那些事儿94——多线程实现方式1(3)

时间:2010-03-15 csdn 陈跃峰

在该示例代码中,将重复的代码组织称print方法,分别在main方法和run方法内部调用该方法。需要特别强调的是,在run方法内部调用的方法,也会以多线程多线程的方式被系统执行,这样更加方便代码的组织。

其实在实际实现时,还可以把线程以单独类的形式出现,这样实现的代码如下所示:

/** * 测试类 */ public class Test {  public static void main(String[] args) {   //初始化线程   ThirdThread ft = new ThirdThread();   //启动线程   ft.start();   try{    for(int i = 0;i < 10;i++){     //延时1秒     Thread.sleep(1000);     System.out.println("main:" + i);    }   }catch(Exception e){}  } } /** * 以继承Thread类的方式实现多线程3 * 以单独类的实现组织代码 */ public class ThirdThread extends Thread {  public void run(){   try{    for(int i = 0;i < 10;i++){     //延时1秒     Thread.sleep(1000);     System.out.println("run:" + i);    }   }catch(Exception e){}  } }

在该示例代码中,ThirdThread类是一个单独的线程类,在该类的run方法内部实现线程的逻辑,使用该种结构符合面向对象组织代码的方式。需要启动该线程时,和前面启动的方式一致。

一个类具备了多线程的能力以后,可以在程序中需要的位置进行启动,而不仅仅是在main方法内部启动。

对于同一个线程类,也可以启动多个相同的线程,例如以ThirdThread类为例,启动两次的代码为:

ThirdThread t1 = new ThirdThread(); t1.start(); ThirdThread t2 = new ThirdThread(); t2.start();

而下面的代码是错误的

ThirdThread t1 = new ThirdThread(); t1.start(); t1.start(); //同一个线程不能启动两次

当自定义线程中的run方法执行完成以后,则自定义线程将自然死亡。而对于系统线程来说,只有当main方法执行结束,而且启动的其它线程都结束以后,才会结束。当系统线程执行结束以后,则程序的执行才真正结束。

总之,继承Thread类可以使该类具备多线程的能力,需要启动该线程时,只需要创建该类的对象,然后调用该对象中的start方法,则系统将自动以多线程的发那个是执行该对象中的run方法了。

虽然该种方式受到Java语法中类的单重继承的限制,但是在实际的项目中还是获得了比较广泛的使用,是一种最基本的实现线程的方式。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号