线程的创建方式

本文详细介绍了Java中创建线程的多种方式,包括继承Thread类、实现Runnable接口、实现Callable接口以及使用线程池。对于每种方式,文章都阐述了实现步骤,常见方法以及它们之间的区别。同时,还涵盖了匿名内部类创建线程的方法。
摘要由CSDN通过智能技术生成

一、方式1——继承Thread类

1、实现步骤:

(1)创建一个继承了Thread类的子类

(2)在子类中重写run方法

(3)创建Thread对象

(4)调用Thread类中的start方法,开启新线程,执行重写后的run方法

//1.创建一个继承了Thread类的子类
public class ThreadTest extends Thread{

    //2.子类中重写run方法
    @Override
    public void run() {
        for(int i=0;i<5;i++)
        System.out.println("新线程 去吃饭");
    }
}
public class ThreadTestDemo {
    public static void main(String[] args) {
        //3.主线程中创建子类对象
        ThreadTest test = new ThreadTest();
        //4.创建的对象调用start方法,开启线程,执行重写后的run方法
        test.start();

        for(int j=0;j<5;j++){
            System.out.println("main主线程 去睡觉");
        }
    }
}
main主线程 去睡觉
main主线程 去睡觉
main主线程 去睡觉
main主线程 去睡觉
main主线程 去睡觉
新线程 去吃饭
新线程 去吃饭
新线程 去吃饭
新线程 去吃饭
新线程 去吃饭

显然,此时main方法(主线程)能够更快的抢占CPU资源,可以通过以下代码使线程休眠

Thread.sleep(1000);//休眠1秒钟

由此,代码可以改写为:

//1.创建一个继承了Thread类的子类
public class ThreadTest extends Thread{

    //2.子类中重写run方法
    @Override
    public void run() {
        for(int i=0;i<5;i++)
        System.out.println("新线程 去吃饭");
        
    //try---catch 捕获异常,并打印异常性质,位置..
        try{
            Thread.sleep(1000);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
public class ThreadTestDemo {
    public static void main(String[] args) th
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值