【java】线程的创建与使用



一、线程的简介

 

线程是程序执行流的最小单元,一个进程可以包括多个线程,各个线程之间可以并行,也可以互相影响。每一个进程都至少有一个线程。

 

二、创建并使用线程

 

在java中,线程(Thread)是继承自Object,在java.lang.Thread中被声明。想要使用进程的话,首先要保证类继承了Thread类。

创建并使用线程可以有多种方法。

 

1.直接创建一个Thread实例

 

Thread thread = new Thread();
//要使得进程开始,使用thread.start();

然而进程默认的run()方法为空,因此此时,由于没有重写thread.run()方法,进程被创建之后便会静默退出,什么也没有做。

 

要想让进程执行相应的操作,就要重写thread.run();

 

Thread thread = new Thread() {

    @Override

    publicvoid run() {

       //重写run方法,并且输出Thread1 act!

       System.out.println("Thread1 act!");

    }

};

thread.start();//进程开始

输出结果为:

Thread1 act!

 

该方法是最简单的创建进程的办法,不需要额外的类文件。

 

2.自定义进程类

 

创建一个类文件,并且使其继承Thread类,随后重写run方法即可。

 

publicclassTestThread extendsThread{

   

    @Override

    publicvoid run() {

       System.out.println("Thread2 act!");

    }

}

在创建该进程的时候,实例化该进程对象,并且使用start即可。

 

TestThread testThread = new TestThread();

testThread.start();

输出结果为(包含之前的代码运行):

Thread1 act!

Thread2 act!

 

该方法可以自定义各种进程类,当需要让多个进程执行不同操作的时候,这种方法可以大大减少工作量。

 

3.使用Runnable接口

 

Runnable是在java.lang.Runnable中被声明的接口,可以通过自定义类来实现它。

 

同样,需要创建进程时实例化一个Thread对象,但是这一次,还要传入一个Runnable接口的实现类。

 

publicclassTestRunnable implements Runnable{

 

    @Override

    publicvoid run() {

       System.out.println("Thread3 act!");

    }

}

同样的,重写run方法。

 

在创建进程时,将自定义的Runnable类传入。

Thread thread3 = new Thread(new TestRunnable());

thread3.start();


 

输出内容为(包括之前的代码运行):

Thread1 act!

Thread2 act!

Thread3 act!

 

该方法避免了创建多个进程类,也同样能够实现多线程执行不同的操作。相比前者,因为自定义的类是实现了Runnable,因此仍然可以从其他类继承,从而使得灵活性更加高。

 

三、使用需知

 

1.不能够直接调用run()方法

 

创建线程后,使用start()方法就可以使得该线程开始,而run()方法也会被自动调用。

 

但是,倘若直接调用run()方法,虽然也会进行相应的操作,但是实际上是在当前的线程内进行的,并没有使用新创建的线程。

 

2.线程的结束

 

在线程的run()方法运行完之后,线程便会自动退出,每个线程的run方法一般只会运行一次,而不是一直反复调用。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值