Java-创建线程

继承Thread类创建线程

Thread类是Java类库提供的用于创建线程的类,包含在java.lang包中。
继承Thread类创建线程的步骤:

  1. 创建Thread类的子类,在该子类中重写run()方法;
  2. 创建该子类的对象;
  3. 子类对象调用start()方法启动线程;程序运行后,将自动执行子类中的run()方法。
import java.util.*;
//输出0-99的随机整数
public class Demo
{
    public static void main(String[] args)
    CreateNumber t = new CreateNumber();
    t.start();
}

class CreateNumber extends Thread
{
    protected int num;
    public void run()//这个线程的使命和任务
    {
        for(int i=1;i<=5;i++)
        {
            num = (int)(Math.random()*100);
            System.out.println(num);
            try{ Thread.sleep(1000); }
            catch(InterruptedException e){}
        }
    }
}

实现Runnable接口创建线程(常用)

使用Thread类的一个构造方法来创建线程Thread(Runnable task):

  1. 创建一个实现Runnable接口的类,在类中实现run()方法;
  2. 创建该类的对象,将该对象传递给Thread(Runnable task)作为实参创建线程对象;
  3. 线程对象调用start()方法启动目标线程;程序运行后,将自动执行对象中的run()方法。
import java.util.*;
//输出0-99的随机整数
public class Demo
{
    public static void main(String[] args)
    CreateNumber task = new CreateNumber();
    Thread t = new Thread(task);
    t.start();
}

class CreateNumber implements Runnable
{
    protected int num;
    public void run()
    {
        for(int i=1;i<=5;i++)
        {
            num = (int)(Math.random()*100);
            System.out.println(num);
            try{ Thread.sleep(1000); }
            catch(InterruptedException e){}
        }
    }
}

实现Runnable接口创建线程的优点:

  1. 由于Java不支持多继承,如果使用继承Thread类的方法来创建线程,这个类就不可以再继承其他的类
  2. 实现Runnable接口创建线程为以后扩展其他类留下可能,是一种更为灵活也更常用的方法。

Thread类的主要方法

1.Thread(String s)
-Thread的构造方法,用于构造一个名字为s的线程。
-例如:Thread t = new Thread(“myThread”);

2.Thread()
-Thread的构造方法,用于构造一个名字为Thread-加上一个数字的线程,如Thread-0、Thread-1、Thread-2…等。

3.start()
-线程对象通过调用start()方法启动线程,使它从新建状态进入到就绪状态排队等候CPU时间片。

4.run()
-用来定义线程对象被调用后所自动执行的操作,是线程的使命所在。

5.setName(String s)
-用于设置线程的名称。

6.getName()
-用于返回线程的名称。

7.toString()
-返回一个包含了线程名称、线程优先级别的线程所属线程组的字符串。

8.currentThread()
-Thread类的类方法,返回一个当前正在运行状态中的线程对象的引用。

9.isAlive()
-测试当前线程是否处于活动的状态。新建的线程再调用start()方法前,isAlive()返回false;
在调用了start方法后,直到run()方法结束之前,isAlive()返回true;
run()方法运行结束,isAlive()返回false。

10.sleep(int millisecond)
-Thread类的类方法,使线程休眠一段由参数millisecond指定长度的时间,单位为毫秒。当线程休眠时会放弃CPU的使用权。如果一个线程在休眠期间被打断,将引发一个InterruptedException异常。

11.interrupt()
-线程对象可以通过调用interrupt()方法中断本线程的休眠,从而让该线程进入就绪状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值