• Java在不同线程中运行代码


    start()方法开始为一个线程分配CPU时间,这导致对run()方法的调用。

    代码1

    package Threads;
    
    /**
     * Created by Frank
     */
    public class ThreadsDemo1 extends Thread {
        private String msg;
        private int count;
    
        public ThreadsDemo1(final String msg, int n) {
            this.msg = msg;
            count = n;
            setName(msg + " runner Thread");
        }
    
        public void run() {
            while (count-- > 0) {
                System.out.println(msg);
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    return;
                }
            }
            System.out.println(msg + " all done.");
        }
    
        public static void main(String[] args) {
            new ThreadsDemo1("Hello from X", 10).start();
            new ThreadsDemo1("Hello from Y", 15).start();
        }
    }

    代码2:

    package Threads;
    
    /**
     * Created by Frank
     */
    public class ThreadsDemo2 implements Runnable {
        private String msg;
        private Thread t;
        private int count;
    
        public static void main(String[] args) {
            new ThreadsDemo2("Hello from X", 10);
            new ThreadsDemo2("Hello from Y", 15);
        }
    
        public ThreadsDemo2(String m, int n) {
            this.msg = m;
            count = n;
            t = new Thread(this);
            t.setName(msg + "runner Thread");
            t.start();
        }
    
        @Override
        public void run() {
            while (count-- > 0) {
                System.out.println(msg);
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    return;
                }
            }
            System.out.println(msg + " all done.");
        }
    }

    代码3:

    package Threads;
    
    /**
     * Created by Frank
     */
    public class ThreadsDemo3 {
        private int count;
    
        public static void main(String[] args) {
            new ThreadsDemo3("Hello from X", 10);
            new ThreadsDemo3("Hello from Y", 15);
        }
        public ThreadsDemo3(final String msg, int n) {
            this.count = n;
            Thread t = new Thread(new Runnable() {
                @Override
                public void run() {
                    while (count-- > 0) {
                        System.out.println(msg);
                        try {
                            Thread.sleep(100);
                        } catch (InterruptedException e) {
                            return;
                        }
                    }
                    System.out.println(msg + " all done.");
                }
            });
            t.setName(msg + " runner Thread");
            t.start();
        }
    }
  • 相关阅读:
    分布式框架服务调用超时设计与实现
    分布式框架灰度发布实现
    写给自己的 SOA 和 RPC 理解
    Java 基础【19】代理
    Java 基础【18】 反射与内省
    Spring HttpInvoker 从实战到源码追溯
    Lombok 使用攻略
    Guava Preconditions 工具参数前置校验
    CAS 单点登录【2】自定义用户验证
    Hibernate 离线对象构建通用查询
  • 原文地址:https://www.cnblogs.com/frankyou/p/6518589.html
Copyright © 2020-2023  润新知