资讯专栏INFORMATION COLUMN

java创建多线程的第一种形式

Vixb / 796人阅读

摘要:多次启动一个线程是非法的。程序属于抢占式调度那个线程的优先级高那个线程优先执行同一个优先级随机选择一个执行创建类的子类对象调用类中的方法方法开启新的线程执行方法创建一个类的子类在类的子类中重写类中的方法设置线程任务开启线程要做什么

package com.itheima.demo06.Thread;
/*

创建多线程程序的第一种方式:创建Thread类的子类
java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类

实现步骤:
    1.创建一个Thread类的子类
    2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?)
    3.创建Thread类的子类对象
    4.调用Thread类中的方法start方法,开启新的线程,执行run方法
         void start() 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
         结果是两个线程并发地运行;当前线程(main线程)和另一个线程(创建的新线程,执行其 run 方法)。
         多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。
java程序属于抢占式调度,那个线程的优先级高,那个线程优先执行;同一个优先级,随机选择一个执行

*/
public class Demo01Thread {

public static void main(String[] args) {
    //3.创建Thread类的子类对象
    MyThread mt = new MyThread();
    //4.调用Thread类中的方法start方法,开启新的线程,执行run方法
    mt.start();

    for (int i = 0; i <20 ; i++) {
        System.out.println("main:"+i);
    }
}

}
package com.itheima.demo06.Thread;
//1.创建一个Thread类的子类
public class MyThread extends Thread{

//2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?)
@Override
public void run() {
    for (int i = 0; i <20 ; i++) {
        System.out.println("run:"+i);
    }
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75430.html

相关文章

  • Java011-线程

    摘要:多线程进程正在进行中的程序。所以容易出现线程安全问题。等待唤醒机制涉及的方法将同步中的线程处于冻结状态。返回该线程的字符串表示形式,包括线程名称优先级和线程组。暂停当前正在执行的线程对象,并执行其他线程。 多线程:进程:正在进行中的程序。其实进程就是一个应用程序运行时的内存分配空间。线程:其实就是进程中一个程序执行控制单元,一条执行路径。进程负责的是应用程序的空间的标示。线程负责的是应...

    gekylin 评论0 收藏0
  • 单例模式总结

    摘要:如果是后者,则在执行完毕未执行之前,被线程二抢占了,这时已经是非了但却没有初始化,所以线程二会直接返回在之后双重检查锁定才能够正常达到单例效果,之前有个坑。所以,在版本前,双重检查锁形式的单例模式是无法保证线程安全的。 第一种(懒汉, 线程不安全): public class Singleton { private static Singleton instance; ...

    xorpay 评论0 收藏0
  • Java单例模式实现

    摘要:所以,在版本前,双重检查锁形式的单例模式是无法保证线程安全的。 单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,恳请读者指正。 饿汉法 顾名思义,饿汉法就是在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建。代码如下: public class Singleton...

    jaysun 评论0 收藏0
  • JavaScript如何工作:V8引擎深入探究 + 优化代码的5个技巧(译文)

    摘要:引擎可以是一个标准的解释器,也可以是一个将编译成某种形式的字节码的即时编译器。和其他引擎最主要的差别在于,不会生成任何字节码或是中间代码。不使用中间字节码的表示方式,就没有必要用解释器了。 原文地址:https://blog.sessionstack.com... showImg(https://segmentfault.com/img/bVVwZ8?w=395&h=395); 数周之...

    William_Sang 评论0 收藏0
  • 译:Java中生产者与消费者问题的演变

    摘要:生产者消费者问题是一个典型的多进程同步问题。生产者线程开始产生新的元素并将它们存储在缓冲区。否则,生产者线程将会在缓冲区创建一个新元素然后通知消费者。我们建立一个线程池,它将收到两个任务,生产者和消费者的任务。 原文链接:https://dzone.com/articles/th... 作者:Ioan Tinca 译者:liumapp 想要了解更多关于Java生产者消费者问题的演变吗?...

    王伟廷 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<