Thread线程的常用方法及demo

本文介绍了Java中创建线程的两种方法:继承Thread类与实现Runnable接口,并通过实例演示了这两种方法的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程的创建:
  Thread()    
  Thread(String name)   
  Thread(Runnable target)  
  Thread(Runnable target,String name)
线程的方法:
  启动线程
  void start() 

  线程休眠
  static void sleep(long millis)
  static void sleep(long millis,int nanos )

  使其他线程等待当前线程终止
  void join()
  void join(long millis)
  void join(long millis ,int nanos)

  当前运行线程释放处理器资源
  获取线程的引用static Thread currentThread() 返回当前运行的线程引用
  static void yield()
两种实现方式:
extends Thread
implements Runnable
两种实现方式的区别:
    在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处:
    避免点继承的局限,一个类可以继承多个接口。
    适合于资源的共享
Runnable接口和Thread之间的联系:
    public class Thread extends Object implements Runnable
    Thread类也是Runnable接口的子类

package com.imooc.thread;

public class Actor extends Thread {

  public void run() {
    String name = getName();
    System.out.println(name + "是一个演员!");
    int count = 0;
    boolean keeprunning = true;
    while (keeprunning) {
      System.out.println(name + "总共演出了" + ++count + "次");

      if (count == 100) {
        keeprunning = false;
      }

      if (count % 10 == 0) {
        try {
          sleep(1000);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }

    System.out.println(name + "演出结束!");
  }

  public static void main(String[] args) {
    Thread actor = new Actor();
    actor.setName("Mr.Thread");
    actor.start();

    Thread gactor = new Thread(new GActor(), "Mr.Runnable");
    gactor.start();
  }

}

class GActor implements Runnable {

  @Override
  public void run() {
    String name = Thread.currentThread().getName();
    System.out.println(name + "是一个演员");

    int count = 0;
    boolean keeprunning = true;
    while (keeprunning) {
      System.out.println(name + "总共演出了" + ++count + "次");
      if (count == 100) {
        keeprunning = false;
      }
      if (count % 10 == 0) {
          try {
            Thread.sleep(1000);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
      }
    }
    System.out.println(name+"演出结束了!");
  }
}


 

转载于:https://my.oschina.net/dreambreeze/blog/1036322

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值