技术中心

这里象征着我们的态度和能力

>java thread
发布者:中国IT实验室    信息来源:中国IT实验室    发布时间:2012-03-12      浏览次数:7243
分享到:

新浪微博

腾讯微博

QQ空间

豆瓣网

QQ好友

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
    使用Java多线程编程很容易。 Java线程总是实现接口java.lang.Runnable, 一般有两种方法: 创建一个类实现接口Runnable, 创造该类的实例作为参数传给Thread构造函数, 创造Thread实例。
   
    package tony.test.testJavaThread;
   
    /**
   
    * @author Tony
   
    */
   
    public class TestRunnable implements Runnable
   
    {
   
    int count = 0;
   
    private synchronized void printHello()
   
    {
   
    System.out.println(++count + ". Hello " + Thread.currentThread()。getName());
   
    }
   
    public void run()
   
    {
   
    printHello();
   
    }
   
    public static void main(String[] args)
   
    {
   
    TestRunnable tr = new TestRunnable();
   
    for (int i=0; i<5; i++)
   
    {
   
    new Thread(tr, "Tonys Thread-" + (i+1))。start();
   
    }
   
    }
   
    }继承java.lang.Thread, 创造该类对象。 这种方法一般要重写(Override)run方法, 不然该线程就什么也没做就结束了。
   
    package tony.test.testJavaThread;
   
    /**
   
    * @author Tony
   
    */
   
    public class TestThread extends Thread
   
    {
   
    static int count = 0;
   
    public TestThread(String name)
   
    {
   
    super(name);
   
    }
   
    public void run()
   
    {
   
    synchronized(this.getClass())
   
    {
   
    System.out.println(++count + ". Hello " + this.getName());
   
    if (count == 2)
   
    {
   
    System.out.println(this.getName() + " is to sleep for 4s");
   
    try
   
    {
   
    Thread.sleep(4000);
   
    }
   
    catch (InterruptedException e)
   
    {
   
    e.printStackTrace();
   
    }
   
    }
   
    }
   
    }
   
    public static void main(String[] args)
   
    {
   
    for (int i=0; i<5; i++)
   
    {
   
    new TestThread("Tonys Thread-"+(i+1))。start();
   
    }
   
    }
   
    }
   
    两者可以实现同样的功能。 但个人比较喜欢前者。 由于Java是单继承, 所以后者不能再继承其它类了。 而前者还有个好处就是可以把线程间共享的数据作为类的字段, 然后把该类实现Singleton, 只实例化一个对象, 作为参数传给Thread. 当然如果不想共享成员, 而对于每个Thread提供不同的Runnable对象。 而后者要实现共享就要在继承的类中声明一堆static属性。
   
    Java Thread通过方法start启动, 而实际运行的内容在方法run中。 不过简单地调用run, 如thread.run(); 只是把run作为普通的方法调用了一遍, 并没有启动新的线程。 当run中的内容运行完之后, 线程便自动结束了。 类Thread提供一个静态方法sleep. 任何时候调用该方法都可以把当前执行的线程暂停指定的时间。
 

[1] [2] [3] [4] 下一页

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730