zoukankan      html  css  js  c++  java
  • Java通过实现Runnable接口来创建线程

    创建一个线程,最简单的方法是创建一个实现Runnable接口的类。
    为了实现Runnable,一个类只需要执行一个方法调用run(),声明如下:

    public void run()

    你可以重写该方法,重要的是理解的run()可以调用其他方法,使用其他类,并声明变量,就像主线程一样。
    在创建一个实现Runnable接口的类之后,你可以在类中实例化一个线程对象。
    Thread定义了几个构造方法,下面的这个是我们经常使用的:

    Thread(Runnable threadOb,String threadName);

    这里,threadOb 是一个实现Runnable 接口的类的实例,并且 threadName指定新线程的名字。
    新线程创建之后,你调用它的start()方法它才会运行。

    void start();

    实例

    下面是一个创建线程并开始让它执行的实例:

    // 创建一个新的线程
    class NewThread implements Runnable {
       Thread t;
       NewThread() {
          // 创建第二个新线程
          t = new Thread(this, "Demo Thread");
          System.out.println("Child thread: " + t);
          t.start(); // 开始线程
       }
    
       // 第二个线程入口
       public void run() {
          try {
             for(int i = 5; i > 0; i--) {
                System.out.println("Child Thread: " + i);
                // 暂停线程
                Thread.sleep(50);
             }
         } catch (InterruptedException e) {
             System.out.println("Child interrupted.");
         }
         System.out.println("Exiting child thread.");
       }
    }
    
    public class ThreadDemo {
       public static void main(String args[]) {
          new NewThread(); // 创建一个新线程
          try {
             for(int i = 5; i > 0; i--) {
               System.out.println("Main Thread: " + i);
               Thread.sleep(100);
             }
          } catch (InterruptedException e) {
             System.out.println("Main thread interrupted.");
          }
          System.out.println("Main thread exiting.");
       }
    }

    编译以上程序运行结果如下:

    Child thread: Thread[Demo Thread,5,main]
    Main Thread: 5
    Child Thread: 5
    Child Thread: 4
    Main Thread: 4
    Child Thread: 3
    Child Thread: 2
    Main Thread: 3
    Child Thread: 1
    Exiting child thread.
    Main Thread: 2
    Main Thread: 1
    Main thread exiting.

    【正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个“顶”字,你就顺手把它点了吧(要先登录CSDN账号哦 )】


    —–乐于分享,共同进步!
    —–更多文章请看:http://blog.csdn.net/duruiqi_fx


  • 相关阅读:
    DFS初级算法题练习 POJ2488 POJ3009 POJ1088
    分支限界法基础练习笔记
    PuyoPuyo DFS算法练习
    回溯法基础练习笔记
    java基础:I/O流学习笔记
    synchronized锁的各种用法及注意事项
    20.04搭建ROS2
    西安 交建交通科技 招聘信息
    在.NET2.0中使用LINQ
    sqlite+VS2010+EF
  • 原文地址:https://www.cnblogs.com/hainange/p/6153820.html
Copyright © 2011-2022 走看看