zoukankan      html  css  js  c++  java
  • 2.线程创建方式

    多线程创建:

    在java里,多线程的创建方式,一是继承Thread类,一种是实现Runnable接口。

    无论是哪一种线程创建方式,我们都要重写run( )方法。

    只有run( )方法中的业务代码,才是线程开启后去执行的业务逻辑。

    而每一个继承Thread类的类,对象实例化过程中,就可以创建一个线程。

    而实现Runnable接口的类,必须要装载在Thread类中,才是真正创建一个线程。

    因为java的父类继承资源的瓶颈,所以实现接口方式会更加灵活。

    我个人理解,Runnable接口仅仅只是提供一个业务逻辑的抽象,本身本没有线程的特征,所以它的线程创建需要借助Thread类。

    以上,不过仅仅是创建线程,这些并不会真正运行线程的业务方法。我们还需要去开启线程。

    线程开启的方式是调用start( )方法,而不是run( )方法,调用run( )方法还是在主线程上串行运行。

    实例:

    package com.xm.thread.t_19_01_26;
    
    /**
     * 多线程创建方式
     */
    public class CreateThread {
    
        public static void main(String[] args) {
            //继承Thread类的线程开启
            new Thread1().start();
    
            //实现Runnable接口的线程开启
            new Thread(new Thread2()).start();
    
            System.out.println("线程创建的两种方式");
        }
    }
    
    
    /**
     * 继承Thread类,创建线程
     */
    class Thread1 extends Thread {
    
        @Override
        public void run() {
            System.out.println("继承Thread类创建线程");
        }
    }
    
    /**
     * 实现Runnable接口,创建线程
     */
    class Thread2 implements Runnable{
    
        @Override
        public void run() {
            System.out.println("实现Runnable接口创建线程");
        }
    }
    
    

    运行结果:

    第一次运行:

    继承Thread类创建线程

    实现Runnable接口创建线程

    线程创建的两种方式

    第二次运行:

    线程创建的两种方式

    继承Thread类创建线程

    实现Runnable接口创建线程

    通过线程的调用方式,我们可以看出来,线程之间的执行顺序貌似是不可控的,实际上cpu对线程资源的切换就是随机的。下一节,我们来探讨线程优先级。

  • 相关阅读:
    unp.h
    美拍视频下载
    动态加载ajax 腾讯视频评论
    已知二叉树的先序,中序遍历,求后续遍历

    JSP九大内置对象及四个作用域
    转换数据库连接池为hikaricp
    JSP Tomcat8.0运行连接池时发生异常【AbstractMethodError oracle.jdbc.driver.T4CConnection.isValid(I)Z】
    tomcat启动时出现There are no resources that can be added or removed from the server
    java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener问题解决
  • 原文地址:https://www.cnblogs.com/TimerHotel/p/thread02.html
Copyright © 2011-2022 走看看