• Java多线程编程核心技术---多线程技能


    1、继承Thread

    /**
     * Copyright (C), 2018-2018,
     * FileName: MyThread
     * Author:   大象
     * Date:     2018-06-08 22:30
     */
    package com.daxiang.demo.thread;
    
    /**
     * 〈〉<br> 
     *
     * @author daxiang
     * @create 2018-06-08
     * @since 1.0.0
     */
    public class MyThread extends Thread{
        @Override
        public void run() {
            super.run();
            System.out.println("this is thread");
        }
    
        public static void main(String[] args) {
            MyThread myThread = new MyThread();
            myThread.start();
            System.out.println("线程结束");
        }
    }
    

    2、实现Runnable接口

    由于java规定只能单继承,所以为了满足多线程要求可以继承Runnable接口

    /**
     * Copyright (C), 2018-2018,
     * FileName: MyThreadByRunnable
     * Author:   大象
     * Date:     2018-06-08 22:33
     */
    package com.daxiang.demo.thread;
    
    /**
     * 〈〉<br> 
     *
     * @author daxiang
     * @create 2018-06-08
     * @since 1.0.0
     */
    public class MyThreadByRunnable implements Runnable{
    
        @Override
        public void run() {
            System.out.println("线程运行中");
        }
    
        public static void main(String[] args) {
            MyThreadByRunnable myThreadByRunnable = new MyThreadByRunnable();
            Thread thread = new Thread(myThreadByRunnable,"线程1");
            thread.start();
            System.out.println("运行结束");
        }
    }

    3、线程运行的随机性

    /**
     * Copyright (C), 2018-2018,
     * FileName: MyThreadByRandom
     * Author:   大象
     * Date:     2018-06-09 7:00
     */
    package com.daxiang.demo.thread;
    
    /**
     * 〈〉<br>
     *
     * @author daxiang
     * @create 2018-06-09
     * @since 1.0.0
     */
    public class MyThreadByRandom extends Thread {
    
        @Override
        public void run() {
            System.out.println("run thread:" + Thread.currentThread().getName());
            for (int j = 0; j < 10; j++) {
                int time = (int) Math.random() * 1000;
                try {
                    Thread.sleep(time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("run:" + Thread.currentThread().getName());
            }
    
        }
    
        public static void main(String[] args) {
            MyThreadByRandom thread = new MyThreadByRandom();
            thread.setName("线程");
            thread.start();
            for (int i = 0; i < 10; i++) {
                int time = (int) Math.random() * 1000;
                try {
                    Thread.sleep(time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("run:" + Thread.currentThread().getName());
            }
        }
    
    }
    

      

  • 相关阅读:
    调整数组顺序使奇数位于偶数前面
    网站远程附件存储到 OSS
    平滑升级mariadb
    在Apache服务器上安装SSL证书
    复试-英语
    部署博客(docker)
    远程连接Windows
    Ultimate SLAM?利用事件相机解锁高速运动、高动态范围场景
    LRNNet:轻量级FCB& SVN实时语义分割
    3D目标检测深度学习方法中voxel-represetnation内容综述(三)
  • 原文地址:https://www.cnblogs.com/daxiang2008/p/9157845.html
Copyright © 2020-2023  润新知