zoukankan      html  css  js  c++  java
  • JAVA高级复习-多线程创建方式一

    一、多线程创建

    可以通过两种方式创建多线程。

    方式一:继承Thread类

    1、创建一个继承于Thread类的子类
    2、重写Thread类的run() --> 将此线程执行的操作声明在run()中
    3、创建Thread类的子类的对象
    4、通过此对象调用start()

    /**
     * @description:多线程的创建:两种方式
     * @date: 2020/7/25 10:32
     * @author: winson
     */
    public class CreateThread {
        public static void main(String[] args) {
            MyThread t1 = new MyThread();
            t1.start();
            //如果直接调用父类的run方法,并不会开启新线程,还是在mian线程中执行方法;
            //问题一:我们不能通过直接调用run方法的方式启动线程;
            //t1.run();
    
            //问题二:再启动一个线程,遍历50内的偶数,不可以还让已经start()的线程去执行,会报java.lang.IllegalThreadStateException异常
            //我们需要重新创建一个线程的实例对象;
            MyThread t2 = new MyThread();
            t2.start();
            for (int i = 0; i < 50; i++) {
                if (i % 2 == 0) {
                    System.out.println(Thread.currentThread().getName() + ":" + i);
                }
            }
        }
    }
    
    /**
     * 方式一:继承Thread类
     * 1、创建一个继承于Thread类的子类
     * 2、重写Thread类的run() --> 将此线程执行的操作声明在run()中
     * 3、创建Thread类的子类的对象
     * 4、通过此对象调用start()
     */
    
    class MyThread extends Thread {
        @Override
        public void run() {
            for (int i = 0; i < 50; i++) {
                if (i % 2 == 0) {
                    System.out.println(Thread.currentThread().getName() + ":" + i);
                }
            }
        }
    }
    

    start()方法的作用:1、使该线程开始执行;2、Java 虚拟机调用该线程的 run()方法。如果直接调用父类的run()方法,此不会开启新线程,还是在mian()线程中执行方法;

    总结:

    问题一:我们不能通过直接调用run()方法的方式启动线程;如果直接调用父类的run()方法,并不会开启新线程,还是在mian()线程中执行方法;

    问题二:再启动一个线程,遍历50内的偶数,不可以还让已经start()的线程去执行,会报java.lang.IllegalThreadStateException异常, 我们需要重新创建一个线程的实例对象;

  • 相关阅读:
    Nhibernate对象转JSON
    C# Windows服务
    C# 接收http请求
    C# XML 基础解系
    C# XML 序列化与反序列化
    C# Newtonsoft.Json 应用
    C# 读取自定义XML
    对图片添加水印
    iText: 对pdf文件添加水印
    java对Office文件处理技术(介绍)
  • 原文地址:https://www.cnblogs.com/elnimo/p/13375886.html
Copyright © 2011-2022 走看看