java中通过Thread类来创建线程

本文介绍了Java中通过继承Thread类创建线程的方法,包括定义子类覆盖run()方法、创建线程对象及启动线程的过程。并通过示例程序展示了如何实现多线程并发执行。

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

在java中线程的创建有两种方法:继承Thread类和Runnable接口。下面介绍一下通过Thread类创建线程:

继承Thread类:

      Thread类中有两个最主要的方法:run()和start()。

      run()方法包含线程运行时要执行的任务,即线程执行体。

      start()方法从名称就可以看出,它的作用是用于启动线程。

      继承Thread类创建并启动多线程的步骤为:

      首先,定义Thread类的子类,并覆盖该类的run()方法。

      其次,创建Thread子类的实例,即创建线程的对象。

      最后,用线程对象的start()方法来启动线程。

实例说明如下:

  1. public class Thread1 extends Thread{   
  2.     public void run(){   
  3.         System.out.println(this.getName());   
  4.     }   
  5.     public static void main(String args[]){   
  6.         System.out.println(Thread.currentThread().getName());   
  7.         Thread1 thread1 = new Thread1();   
  8.         Thread1 thread2 = new Thread1();   
  9.         thread1.start();   
  10.         thread2.start();   
  11.     }   
  12. }  

程序运行结果为:

main
Thread-0
Thread-1

       程序中多个线程并发执行时,程序的运行结果是不确定的。因为多个没有同步约束关系的线程并发执行时,线程调度不能保证哪个线程先执行,也不能保证先执行的线程的持续时间。线程对象调用start()方法后,线程处于可运行状态(Runnable),并没有运行,一旦得到CPU时间片,就开始执行run()方法,run()方法执行完毕,该线程结束。因此可能出现的情况也有一个线程先启动,但是该线程却在另一个线程执行完毕后才执行完毕。线程启动后唯一能够保证的就是:每个线程都将启动,每个线程都会执行结束。

       上个程序分析如下:

        1.任何一个java程序都必须有一个主线程,主线程不是由run()方法决定的,而是由main()函数来决定的。main()方法的执行体代表主线程的执行体。

        2.上面程序用到线程的两个方法:
Thread.currentThread():currentThread()是Thread类的静态方法,该方法总是返回当前正在执行的线程对象的引用。
getName():该方法是Thread类的实例方法,该方法返回调用该方法的线程的名字。
       3.程序可以通过setName(String name)方法为线程设置名字,也可以通过getName()方法返回指定线程的名字。在默认情况下,主线程的名字为main,用户启动的多条线程的名字依次为:Thread-0、Thread-1、Thread-2、……、Thread-n等。
       4.一个线程只能被启动一次。否则会抛出java.lang.IllegalThreadStateException异常。



 

 



 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值