多线程的三种创建方式

本文介绍了Java中创建多线程的三种方式:1) 继承Thread类,2) 实现Runnable接口,3) 实现Callable接口。通过实例展示了每种方式的运行结果和优缺点。Callable接口不同于Thread和Runnable,它能够返回执行结果并允许抛出异常。

创建方式1:继承Thread类

public class Demo_thread {
   
   
    /**
     * 多线程技术
     * 整个main方法是运行在main线程里的,也就是主线程
     * 后面再开启的线程,都是它的分支线程
     * @param args
     */
    public static void main(String[] args) {
   
   
        //Thread
        MyThread m = new MyThread();
        m.start();
        //与上面的是并发执行的
        for (int i=0; i<10 ; i++) {
   
   
            System.out.println("曲项向天歌"+i);
        }
    }
}
/**
 * 继承了Thread类的子类就是一个线程类
 */
public class MyThread extends Thread{
   
   

    /**
     * run方法就是线程要执行的任务方法
     * */
    @Override
    public void run() {
   
   
        //这里的代码就是一条新的执行路径
        //这个执行路径的触发方式,不是调用run方法
        //而是通过thread对象的start()方法,来启动任务。
        for (int i=0; i<10 ; i++) {
   
   
            System.out.println("鹅鹅鹅"+i);
        }

        //super.run();
    }
}

运行结果:
在这里插入图片描述
可以看出,两个线程的执行未必是均匀交替进行的,因为Java执行的是抢占性分配。两个线程并发执行,谁先执行完、谁快,是不确定的,每次执行的结果可能都不一样。

注意:每个线程都拥有自己的栈空间,共用一份堆内存。在执行过程中,每个线程任务里调用的方法,也都会相应地在该线程中运行。主要的处理方法是,方法入栈,然后弹栈。

简便方法:使用匿名内部类

public class Demo_thread2 {
   
   
    /**
     * 继承Thread方式的简便方法。
     */
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值