【JavaEE】线程的创建方式

目录

▮继承Thread类

▮Thread的匿名类

▮实现Runnable接口

▮Runnable的匿名类

▮lambda表达式创建

▪函数式接口

▮创造方法只有四种。


线程:


▮继承Thread类

        自创一个线程类来继承Thread,并重写run()。然后new了一个自创线程类的对象

    static class MyThread extends Thread{
        @Override
        public void run() {
            System.out.println("方法1");
        }
    }
    public static void main(String[] args){
        Thread t1 = new MyThread();
    }

▮Thread的匿名类

        创建一个匿名类继承Thread,并重写run()。然后new了一个匿名类的对象

    public static void main1(String[] args){
        Thread t2 = new Thread(){
            @Override
            public void run() {
                System.out.println("方法2");
            }
    }

        •匿名类

        语法格式:new 父类() { ......}。这里不要误解new,new所创建的对象不是new后面,即父类的对象,new创建的对象是这个无名类的对象:{ ......}。这个无名类继承了new后面的类,也就是它的父类。也正是这种类的无名,所以这个类只能创造出一个对象。


▮实现Runnable接口

        自创一个线程类,并实现接口Runnab。然后new了一个自创线程类对象

    static class MyRunnable implements Runnable{
        @Override
        public void run() {
            System.out.println("方法3");
        }
    }
    public static void main(String[] args){
        Thread t3 = new Thread(new MyRunnable());
    }

        •Thread的构造方法

        这里调用了Thread的另一个构造方法,这个构造方法可以接收实现了Runnab的类。


▮Runnable的匿名类

        创建一个匿名类实现Runnable,并重写run()。然后new了一个匿名类的对象

Thread t4 = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("方法4");
    }
});

▮lambda表达式创建

        创建一个匿名类来实现接口Runnable,并重写了run()。然后new了一个匿名类的对象,相当于方法2的简化版。这种创造线程的方式,也是最为常用的创造方式。

Thread t5 = new Thread(()->{
    System.out.println("方法5");
});

        注意,lambda表达式中没有“public void run()”这段代码,因为这里默认就是在重写run()方法了。lanmbad的语法格式:()-> {......}。其中()就是run方法的(),用于传参;{......}就是run的{......}。所以,这段代码里才没出现  “public void run()”。

▪函数式接口

        函数式接口指的是:只有一个抽象方法的接口。比如Runnable

puublic interface Runnable{
    void run();
}

        这样的函数式接口就可以使用lambda表达式来简化接口的实现。“()-> {......}”本身就是一个匿名类,这个匿名类自动实现接口Runnable,并且()表示的是唯一方法的参数列表(),{......}表示的是唯一方法的方法体{......}

▮创造方法只有四种。

        这五种方式中有两种方式是重复的创造方法,就是Thread和Runnable的匿名类写法,这是一种简化的写法,并不是一种新的方法。真正的创建方法就四个,我们这里的:继承Thread,实现Runnable,lambda表达式;还有一个实现Callable接口。这个后面再说,目前不谈。

      

Stkcd [股票代码] ShortName [股票简称] Accper [统计截止日期] Typrep [报表类型编码] Indcd [行业代码] Indnme [行业名称] Source [公告来源] F060101B [净利润现金净含量] F060101C [净利润现金净含量TTM] F060201B [营业收入现金含量] F060201C [营业收入现金含量TTM] F060301B [营业收入现金净含量] F060301C [营业收入现金净含量TTM] F060401B [营业利润现金净含量] F060401C [营业利润现金净含量TTM] F060901B [筹资活动债权人现金净流量] F060901C [筹资活动债权人现金净流量TTM] F061001B [筹资活动股东现金净流量] F061001C [筹资活动股东现金净流量TTM] F061201B [折旧摊销] F061201C [折旧摊销TTM] F061301B [公司现金流1] F061302B [公司现金流2] F061301C [公司现金流TTM1] F061302C [公司现金流TTM2] F061401B [股权现金流1] F061402B [股权现金流2] F061401C [股权现金流TTM1] F061402C [股权现金流TTM2] F061501B [公司自由现金流(原有)] F061601B [股权自由现金流(原有)] F061701B [全部现金回收率] F061801B [营运指数] F061901B [资本支出与折旧摊销比] F062001B [现金适合比率] F062101B [现金再投资比率] F062201B [现金满足投资比率] F062301B [股权自由现金流] F062401B [企业自由现金流] Indcd1 [行业代码1] Indnme1 [行业名称1] 季度数据,所有沪深北上市公司的 分别包含excel、dta数据文件格式及其说明,便于不同软件工具对数据的分析应用 数据来源:基于上市公司年报及公告数据整理,或相关证券交易所、各部委、省、市数据 数据范围:基于沪深北证上市公司 A股(主板、中小企业板、创业板、科创板等)数据整理计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值