线程的故事:我的3位母亲成就了优秀的我!(1)

简介: 线程的故事:我的3位母亲成就了优秀的我!(1)

声明:本故事纯属虚构,如果雷同那就是真事了!


大家好,我是线程,我的英文名叫 Thread,别看我现在风光无限,好像人尽皆知的样子,然而我的身世却悲惨离奇。


我出身在一个小山村,那是一个与世隔绝的世外桃源,然而年纪轻轻的我,却展现出了与众不同的性格。比如:当身边的同龄人还在沉浸于玩泥巴的喜悦时,我就开始思考如何避免下雨天对出行造成的阻碍?当身边的同龄人还在沉浸于夕阳下的奔跑时,我已经开始思考为什么太阳会东升西落?而我们人类又为什么会生存在地球上?于此可见一斑。


当时的我在所有人眼里就是一个“怪人”,村里面的阿猫、阿狗走路都要躲着我。但我的母亲懂我,她知道这个小伙子器宇不凡、骨骼惊奇,必是练武奇才,将来保护宇宙的重任和维护世界和平的重任可能要交付与我这个神童身上了,于是在我刚满 3 岁那天,母亲就把我过继给了她的一位远房亲戚了。


首位母亲:继承Thread


接下来我要把我的出生过程演示给你看,这也是我的第一段人生经历。


创建方式一


线程最原始的创建方式,只需要继承 Thread 类,重写 run() 方法即可,实现代码如下:


// 创建方式 1:继承 Thread
class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("你好,线程~");
    }
}
// 测试
publicclass ThreadExample {
    public static void main(String[] args) {
        // 创建线程
        Thread thread = new MyThread();
        // 启动线程
        thread.start();
    }
}


变种方法


以上创建线程的方式略显繁琐,我们也可以使用匿名对象的方式,在创建 Thread 类的时候就直接重写 run() 方法,实现代码如下:


// 变种 1:匿名方式创建线程
Thread t1 = new Thread() {
    @Override
    public void run() {
        System.out.println("线程变种");
    }
};
// 启动线程
t1.start();


继承Thread的缺点


Java 语言的设计是单继承,所以当继承了 Thread 之后,就不能再继承其他类了。


也就是说,如果我一直呆在亲生母亲(extends Thread)的身边,那么就得不到好的教育,所以长大之后也注定会普普通通,这可能就是母亲把我过继给远房亲戚的原因吧。


第二位母亲:实现Runnable


在 Java 语言中,虽然不能实现多继承,但可以实现多接口,所以我在第二位母亲家,过得也算如鱼得水。


创建方式二


和继承 Thread 类差不多,实现 Runnable 接口也是重写 run() 方法,具体实现代码如下:


publicclass ThreadExample2 {
    // 创建方式 2:实现 Runnable 接口
    staticclass MyThread implements Runnable {
        @Override
        public void run() {
            System.out.println("你好,线程~");
        }
    }
  // 代码测试
    public static void main(String[] args) {
        // 创建 Runnable 子类
        MyThread myThread = new MyThread();
        // 创建线程
        Thread thread = new Thread(myThread);
        // 启动线程
        thread.start();
    }
}
相关文章
|
4月前
|
Java 调度
揭秘!线程的一生竟然如此‘波折’?从新生到消逝,看它们如何在职场(JVM)中奋斗与挣扎!
【8月更文挑战第24天】在软件开发尤其是多线程编程及面试中,掌握线程的生命周期至关重要。线程的生命周期包含五个关键阶段:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)以及死亡(Dead)。新建阶段是指通过`new`关键字创建线程对象;调用`start()`方法后进入就绪状态,等待CPU调度;获得CPU资源后进入运行状态并执行`run()`方法;因I/O操作等原因暂停执行进入阻塞状态;运行完毕或因异常退出`run()`方法后进入死亡状态。理解这些状态及其转换有助于编写高效稳定的多线程程序。
34 1
|
存储 Java 程序员
一个线程的打工故事
一个线程的打工故事
119 0
|
Java
线程的故事:我的3位母亲成就了优秀的我!(3)
线程的故事:我的3位母亲成就了优秀的我!(3)
166 0
线程的故事:我的3位母亲成就了优秀的我!(3)
|
机器学习/深度学习 数据采集 人工智能
人类想早点移民火星,AI能安排上吗?
大概十年前吧,互联网上很多人自诩火星人,写着常人难以理解的火星文,生怕被人看懂。但是想移民火星做火星人,并不是这十几年的事。
人类想早点移民火星,AI能安排上吗?
|
Java
线程的故事:我的3位母亲成就了优秀的我!(2)
线程的故事:我的3位母亲成就了优秀的我!(2)
108 0
|
新零售 算法 安全
程序员真的是吃青春饭吗?如何面对传说中的 35 岁职业焦虑?
  正走在这条路上的你或许也曾想过这些问题。这一次,力扣邀请到了《高效制胜——程序员面试典型题解》作者吴江(迈克老师),分享他 35 岁跳槽,并拿到了技术负责人 Offer,实现收入增长的故事和面试准备经验。   — 01 —   “35 岁危机”真有那么可怕吗?   在 2018 年快过春节的时候,我们部门突然被通知要开一个会,会上通知我们部门要在明年的这个时候被整体裁掉。我在这家五百强外企已经待了五年,当时虽然有这个预感,但是真的听到正式通知时,不免还是感觉有点震惊。
146 0
下一篇
DataWorks