• 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

    运行结果

    在这里插入图片描述

  • 相关阅读:
    C++ 函数
    java常用集合之Map
    Scala的高级用法
    ARM官方汇编与ARM GNU汇编中的伪操作
    RabbitMQ学习记录
    【示波器专题】数字示波器的主要指标——采样率
    电脑如何设置开机密码?详细教程来了
    广东2022年上半年系统集成项目管理工程师下午真题及答案解析
    Lottie进阶和原理分析
    C语言 —— 初步入门知识(选择与循环语句、函数、数组、操作符、关键字和#define)
  • 原文地址:https://blog.csdn.net/qq_36051316/article/details/126055661