多线程笔记

实现多线程的两个方法

通过继承Thread类并重写该类的 run()方法,并调用start()方法来开启线程任务,因此必须创建一个Thead类的子类。
然后把线程要执行的代码写入到run()方法,再调用start()方法启动线程。
示例:

//继承Thread类
public class thread extends Thread{
    public static void main(String[] args) {
        thread t1 = new thread();//创建一个线程实例
        t1.start();//执行线程
        for(int i = 0;i<5;i++){
            System.out.println("主线程"+i);
        }
    }

    @Override
    public void run() {
        //线程类必须有run()方法
        for(int i = 0;i<5;i++){
            System.out.println("子线程"+i);
        }
    }
}


运行结果

子线程0
子线程1
主线程0
子线程2
主线程1
主线程2
主线程3
主线程4
子线程3
子线程4

Process finished with exit code 0


可以看到子线程在执行两次之后主线程才执行,这里比较明显可以看出来多线程的效果

二、实现Runnable

通过实现接口创建线程的方法,通过生成实现Runnable接口的类创建多线程。该接口只定义了一个run()方法,因此必须在新类中实现它,还必须创建Thread类的实例。
示例:

//继承Thread类
public class thread implements Runnable{
    @Override
    public void run() {//重写run方法
        for(int i = 0;i<5;i++){
            System.out.println("子线程"+i);
        }
    }

    public static void main(String[] args) {
        thread t1 = new thread();//创建任务
        Thread t = new Thread(t1);//创建线程
        t.start();
        for(int i = 0;i<5;i++){
            System.out.println("主线程"+i);
        }
    }
}

运行结果:

子线程0
主线程0
子线程1
主线程1
子线程2
主线程2
子线程3
主线程3
子线程4
主线程4

Process finished with exit code 0

常用的几个方法:

        t.start();//启动线程
        t.currentThread();//获取当前线程对象
        t.setName("t2");//设置线程名称
        t.getName();//获取线程名称
        t.sleep(1000,0);//线程休眠,括号内为两参,第一个参数为毫秒,第二个为纳秒
        //sleep会造成线程阻塞,因此需要抛出异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值