zoukankan      html  css  js  c++  java
  • 实现多线程的两种方式

    实现Runnable接口线程

    步骤:

    1. 实现Runnable接口
    2. 重写run()方法
    3. 实例化对象
    4. 调用start()方法
    public class HelloRunnable implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                System.out.println("我是子线程:" + i);
            }
        }
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // 实例化子线程
            HelloRunnable helloRunnable = new HelloRunnable();
            Thread thread = new Thread(helloRunnable);
            thread.start();
            for (int i = 0; i < 10; i++) {
                System.out.println("我是主线程main:" + i);
            }
        }
    }
    

    实现Runnable接口线程改名

    步骤:

    1. 实现Runnable接口
    2. 重写run()方法
    3. 实例化对象
    4. 调用start()方法
    5. 使用Thread.currentThread().setName()和Thread.currentThread().getName()
    public class HelloRunnableName implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                System.out.println("子线程的名称:" + Thread.currentThread().getName() + ":" + i);
            }
        }
    
        /**
         * 主方法/主线程
         * @param args
         */
        public static void main(String[] args) {
            // 实例化子线程
            HelloRunnableName helloRunnableName = new HelloRunnableName();
            Thread thread = new Thread(helloRunnableName, "我是子线程1");
            thread.start();
    
            Thread.currentThread().setName("我是主线程main1");
    
            for (int i = 0; i < 10; i++) {
                System.out.println("主线程名称:" + Thread.currentThread().getName()+ ":" + i);
            }
        }
    }
    
    

    继承Thread类

    步骤:

    1. 继承Thread类
    2. 重写run()方法
    3. 实例化对象
    4. 调用start()方法
    public class HelloThread extends Thread {
        @Override
        public void run() {
            // super.run();
            for (int i = 0; i < 10; i++) {
                System.out.println("我是子线程:" + i);
            }
        }
    
        /**
         * 主方法/主线程
         * @param args
         */
        public static void main(String[] args) {
            HelloThread helloThread = new HelloThread();
            helloThread.start();
    
            for (int i = 0; i < 10; i++) {
                System.out.println("我是主线程main:"+i);
            }
        }
    }
    
    

    继承Thread类并改名

    1. 继承Thread类
    2. 重写run()方法
    3. 实例化对象
    4. 调用start()方法
    5. 使用Thread.currentThread().setName()和Thread.currentThread().getName()
    public class HelloThreadName extends Thread {
    
        public HelloThreadName(String name) {
            super(name);
        }
    
        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                System.out.println("子线程名称:" + Thread.currentThread().getName() + ":" + i);
            }
        }
    
        /**
         * 主方法/主线程
         * @param args
         */
        public static void main(String[] args) {
            HelloThreadName helloThread = new HelloThreadName("我是子线程1");
            helloThread.start();
    
            Thread.currentThread().setName("我是主线程main1");
    
            for (int i = 0; i < 10; i++) {
                System.out.println("主线程名称:" + Thread.currentThread().getName() + ":"+i);
            }
        }
    }
    
    
  • 相关阅读:
    《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
    关于《加密与解密》的读后感----对dump脱壳的一点思考
    React-Native(四):React Native之View学习
    React-Native(二):React Native开发工具vs code配置
    SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?
    React-Native(一):React Native环境搭建
    游戏资源收集
    Java-NIO(九):管道 (Pipe)
    Java-NIO(八):DatagramChannel
    Java-NIO(七):阻塞IO与非阻塞IO
  • 原文地址:https://www.cnblogs.com/godles/p/11926251.html
Copyright © 2011-2022 走看看