第一篇文章:创建线程的两种方式

本文介绍了Java中创建线程的两种常见方法:一是通过继承Thread类,二是实现Runnable接口。由于Java的单继承限制,实现Runnable接口的方式更为灵活,常用于实际开发中。文中给出了每种方式的具体代码示例,并展示了如何启动线程以及一次性创建多个线程的操作。
摘要由CSDN通过智能技术生成

两种方式:

(1)继承Thread类

class A extends Thread()
{
    @Override
    public  void  run()
    {

    }
}
A  thread1=new A();
thread1.run();

(2)实现Runnable接口

较为繁琐:先让一个类A实现Runnable接口,然后new一个这个类的对象,最后将这个对象传进new Thread()里面

class A implements  Runnable
{
    @Override
    public  void  run()
    {

    }
}

A a=new A();

Thread thread1=new Thread(a);

thread1.run();

简化版本:

Thread  thread1=new  Thread(  ()->{}  ,"线程1");
thread1.run();

方式一:搞一个类(比如叫MyThread)让它继承Thread类

class MyThread extends Thread
{
    @Override
    public void run()
    {
        System.out.println("HelloWorld!");
    }
}
 
 
public class demo
{
    public static void main(String[] args)
    {
       //创建一个线程对象
        Thread test=new MyThread();
 
       //启动新线程
       test.start();
       //执行start()方法的时候会自动调用run()方法
 
      //输出得到:HelloWorld!
    }
}

方式二:搞一个类(比如叫MyThread),让它实现Runnable接口

class Task implements Runnable
{
    @Override
    public void run()
    {
        System.out.println("HelloWorld!");
    }
}
 
 
public class demo
{
    public static void main(String[] args)
    {
       Task task=new Task();
       Thread thread=new Thread(task);
       //上面两行代码可以合并成一行代码:   Thread thread=new Thread(new Task());
 
       //启动新线程
       thread.start();
    }
}

第二种方式实际使用中,会这么写:

public class demo
{
    public static void main(String[] args)
    {
       Thread thread=new Thread(new Runnable()
                                {
                                  @Override
                                  public void run()
                                   {
                                       System.out.println("HelloWorld!");
                                   }
                                }
                               );
     
       thread.start();
    }
}

或者这么写:

public class demo
{
    public static void main(String[] args)
    {
       Thread thread=new Thread(()->
                                 {
                                   System.out.println("HelloWorld!");
                                 }
                               );
       thread.start();
    }
}

 甚至这么写:

 new Thread(()->{System.out.println(Thread.currentThread().getName()+"hello");},"AAA").start();

由于java中类必须单继承,所以如果用第一种方式创建线程,那这个类就无法再继承其他类了,因此方式二是一种更常用的创建方式

一次性创建多个线程:

Thread  thread1=new  Thread(  ()->{System.out.println("线程1在运行");},"线程1");
thread1.run();

Thread  thread2=new  Thread(  ()->{System.out.println("线程2在运行");},"线程2");
thread2.run();

Thread  thread3=new  Thread(  ()->{System.out.println("线程3在运行");},"线程3");
thread3.run();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值