• Java 记录(7)多线程使用(异步)


    希望能写一些简单的教程和案例分享给需要的人

    java 多线程:

    线程是程序中的执行线程。Java虚拟机允许应用程序同时运行多个执行线程。

    每个线程都有优先级。优先级较高的线程优先于优先级较低的线程执行。每个线程也可以标记为守护进程,也可以不标记为守护进程。当在某些线程中运行的代码创建新的线程对象时,新线程的优先级最初设置为与创建线程的优先级相等,并且当且仅当创建线程是守护进程时,新线程才是守护进程线程。

    程序结构:

    application.java : 入口程序
    SendThread.java : 第一种:继承的方法
    SendThread2.java :第二钟:将类加入线程

    在这里插入图片描述

    两种方法:

    1. 写一个类继承我们的 Thread 类,通过这个方式来实现异步/多线程
    2. 写一个类,将这个类加入到创建的线程中运行

    代码:

    application.java

    package com.daolizhe;
    
    public class application {
        public static void main(String[] args) {
            // 写一个类继承我们的 Thread 类,通过这个方式来实现异步/多线程
            for (int i = 0; i < 5; i++) {
                SendThread sendThread = new SendThread("Thread循环发送(异步):" + i);
                sendThread.start();
            }
            // 写一个类,将这个类加入到创建的线程中运行
            for (int i = 0; i < 5; i++) {
                SendThread2 sendThread2 = new SendThread2("Thread2循环发送(异步):" + i);
                new Thread(sendThread2).start();
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    SendThread.java

    package com.daolizhe;
    
    public class SendThread extends Thread {
        String msg;
    
        /**
         * 线程参数
          * @param msg 需要发送(打印)的消息
         */
        public SendThread(String msg) {
            this.msg = msg;
        }
    
        /**
         * 线程运行的方法
         */
        public void run() {
            System.out.println(this.msg);
        }
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    SendThread2.java

    package com.daolizhe;
    
    public class SendThread2 implements Runnable {
    
        String msg;
    
        /**
         * 线程参数
         *
         * @param msg 需要发送(打印)的消息
         */
        public SendThread2(String msg) {
            this.msg = msg;
        }
    
        /**
         * 线程运行的方法
         */
        public void run() {
            System.out.println(this.msg);
        }
    }
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    Thread循环发送(异步):0
    Thread循环发送(异步):1
    Thread循环发送(异步):2
    Thread循环发送(异步):3
    Thread循环发送(异步):4
    Thread2循环发送(异步):0
    Thread2循环发送(异步):2
    Thread2循环发送(异步):1
    Thread2循环发送(异步):3
    Thread2循环发送(异步):4

    运行结果

    在这里插入图片描述

  • 相关阅读:
    小乌龟,git使用教程,gitLab打版教程
    Ocelot使用与设置路由Routing
    PROB: Probabilistic Objectness for Open World Object Detection(论文解析)
    重新安装电脑系统Win10步骤教程
    11.10
    SpringMVC 项目中 创建SpringBoot,使用Hibernate和JPA
    第五章 详解广播机制(Broadcast Receiver)
    经典网络模型
    【etcd】编译与安装
    六、python Django REST framework修改源码[更改restful接口风格、访问错误的响应]
  • 原文地址:https://blog.csdn.net/qq_36051316/article/details/126055661