zoukankan      html  css  js  c++  java
  • java中多线程的两种创建方式

    一丶继承Thread类实现多线程

    第一步:继承Thread类
    第二步:重写run()方法
    第三步:创建继承了Thread类的对象 , 调用start()方法启动。
    //线程创建方式一 :
    /*
    第一步:继承Thread类
    第二步:重写run()方法
    第三步:创建继承了Thread类的对象 , 调用start()方法启动。
     */
    public class TestThread extends Thread{
        @Override
        public void run() {
            for (int i = 0; i < 3000; i++) {
                System.out.println("爱你三千遍");
            }
        }
    
        public static void main(String[] args) {
            TestThread testThread = new TestThread();
             testThread.start();
        }
    
    }

    二丶实现Runnable接口创建多线程

    第一步:实现runnable接口
    第二步:冲写run方法
    第三步:创建实现类对象,创建代理类thread类对象 +start()方法启动线程
    public class Thread_Study implements Runnable{
    /*
    * 第一步:实现runnable接口
    * 第二步:冲写run方法
    * 第三步:创建实现类对象,创建代理类thread类对象 +start()方法启动线程
    *
    * */
    
        @Override
        public void run() {
            for (int i = 0; i < 100; i++) {
                System.out.println("看书");
            }
        }
    
        public static void main(String[] args) {
            Thread_Study ts = new Thread_Study();
            new Thread(ts).start();
            for (int i = 0; i < 100; i++) {
                System.out.println("敲代码");
            }
    
        }
    
    
    }

    运行结果:

    敲代码
    敲代码
    敲代码
    敲代码
    敲代码
    敲代码
    敲代码
    敲代码
    看书
    看书
    看书
    看书
    看书
    看书
    看书

    结论:

    我们可以观察到敲代码和看书同时进行每个线程之间是不相互干涉的,各自执行各自的,这和调用方法不同,调用方法是等到上一个步骤执行完成才可以在执行下一个步骤.

     
     
  • 相关阅读:
    安装JDK,如何配置PATH,如何配置CLASSPATH
    存储过程笔记
    用BeanFactoryAware接口,用BEAN的名称来获取BEAN对象
    静态工厂实例代码
    setTimeout 和 setInterval 的区别
    Spring Autowire自动装配
    动态工厂模式代码实例
    JS处理回车事件
    不错的Spring学习笔记(转)
    单例模式要点
  • 原文地址:https://www.cnblogs.com/xiaoqiqistudy/p/10984248.html
Copyright © 2011-2022 走看看