• Java多线程实现2,实现Runnable接口


    Java 程序只允许单一继承,即一个子类只能有一个父类。所以在Java中如果一个类继承了某一个类,同时又想采用多线程技术的时,就不能用继承Thread类的方式产生线程了,因为Java不允许多继承。这时就要用Runnable接口来创建线程了。采用实现Runnable接口方式实现多线程的大致步骤如下:

    1. 定义一个新的类实现Runnable接口,假设此类名为TestThread。
    2. 在TestThread类中实现run()方法,此方法即为新线程的运行程序代码。
    3. 创建TestThread类的对象t1,再以t1为参数创建Thread类的对象并调用此对象的start()方法。

    下面是采用此方式实现多线程的一个示例:

    public class ThreadDemo9_2
    {
        public static void main(String args[])
        {
            TestThread t = new TestThread();
            new Thread(t).start();
            //循环输出
            for(int i = 0; i < 1000; i++)
            {
                System.out.println("main线程在运行");
            }
        }
    }
    
    class TestThread implements Runnable
    {
        public void run()
        {
            for(int i = 0; i < 1000; i++)
            {
                System.out.println("TestThread在运行");
            }
        }
    }
    

    为什么实现了Runnable接口还需要调用Thread类中的start()方法才能启动多线程呢?读者通过查找JDK文档就可以发现,在Runnable接口中只有一个run()方法,并没有start()方法。所以一个类实现了Runnable接口也必须用Thread类中的start()方法来启动多线程。这点可以通过查找JDK文档中的Thread类发现,在Thread类之中,有这样一个构造方法:public Thread(Runnable target)
    由此构造方法可以发现,可以将一个Runnable接口的实例化对象作为参数去实例化Thread类对象。在实际的开发中,应尽可能去使用Runnable接口去实现多线程机制。

  • 相关阅读:
    LightOJ 1203--Guarding Bananas(二维凸包+内角计算)
    断言assert()与调试帮助
    POJ 3528--Ultimate Weapon(三维凸包)
    POJ 2208--Pyramids(欧拉四面体体积计算)
    HDU 1411--校庆神秘建筑(欧拉四面体体积计算)
    HDU 1241 DFS
    HDU 2037(贪心)
    一次傻乎乎的错误QAQ
    封装Qt的SQLite接口类
    最小生成树(Kruskal算法)模板
  • 原文地址:https://www.cnblogs.com/xiaojihua20/p/4168676.html
Copyright © 2020-2023  润新知