Java 使用多线程调用类的静态方法的示例

作者:Marydon 时间:2021-10-31 21:29:20 

1.情景展示

静态方法内部实现:将指定内容生成图片格式的二维码;

如何通过多线程实现?

2.分析

之所以采用多线程,是为了节省时间 

3.解决方案

准备工作

logo文件 

Java 使用多线程调用类的静态方法的示例

将生成的文件保存在F盘test目录下

Java 使用多线程调用类的静态方法的示例

代码实现


/**
 * 多线程测试类
 * @explain 生成图片格式的二维码采用多线程实现
 * @author Marydon
 * @creationTime 2018年11月23日下午3:15:39
 * @version 1.0
 * @since
 * @email marydon20170307@163.com
 */
public class MultiThreadTest implements Runnable {
 
    // 私有属性:线程名称
    private String threadName;
    // 有参构造方法
    public MultiThreadTest(String threadName) {
        this.threadName = threadName;
    }
     
    /**
     * 线程启动后,将要执行的操作
     */
    @Override
    public void run() {
        // 二维码内容
        String data = "";
        // 图片名称
        String fileName = "";
        // 二维码的logo
        File logoFile = new File("d:/ewm.jpg");
        // 线程启动后,执行100次
        for(int i = 0; i < 100; i++) {
            data = threadName + "Marydon" + i;
            fileName = threadName + "博客园" + i;
            // 生成二维码
            BufferedImage image = QRcodeUtils.createQRCodeWithLogo(data, logoFile);
            // 创建图片文件(二维码)
            File qrcodeFile = new File("f:/test/" + fileName + ".jpg");
            // 以流的形式写入到该文件中
            ZxingQrcode.writeToFile(image, qrcodeFile);
        }
        System.out.println(threadName + "执行结束!");
    }
 
}

测试:依次启动100个线程,每个线程生成100个图片


public static void main(String[] args) {
    // 依次启动100个线程
    for (int i = 1; i <= 100; i++) {
        new Thread(new MultiThreadTest("线程" + i)).start();
    }
}

执行结果

Java 使用多线程调用类的静态方法的示例

来源:https://www.cnblogs.com/Marydon20170307/p/10009094.html

标签:java,多线程,调用,静态方法
0
投稿

猜你喜欢

  • Android基本游戏循环实例分析

    2021-12-26 12:06:22
  • Java面试基础之TCP连接以及其优化

    2023-10-02 17:43:51
  • C# lambda表达式原理定义及实例详解

    2021-07-26 21:44:44
  • JAVA中Comparable接口和自定义比较器示例讲解

    2023-11-20 22:16:32
  • Mybatis模糊查询及自动映射实现详解

    2021-10-29 12:05:40
  • 一篇文章带你了解Java SpringMVC返回null

    2023-11-24 15:18:03
  • android解析JSON数据

    2022-10-17 04:55:40
  • Spring使用注解存储和读取对象详解

    2022-06-10 00:35:24
  • Android编程实现WebView自适应全屏方法小结

    2022-09-20 09:33:09
  • Flutter网络请求的3种简单实现方法

    2023-06-21 10:53:22
  • C#实现简易计算器

    2021-12-10 03:33:26
  • Android入门简单实例

    2021-07-26 16:34:04
  • 在eclipse中中文汉字乱码的解决方案

    2023-11-25 10:13:27
  • 详解Java实现单例的五种方式

    2021-06-11 03:54:03
  • Android 反射注解与动态代理综合使用详解

    2023-01-13 12:30:56
  • JVM类加载机制原理及用法解析

    2021-08-17 00:22:29
  • SpringBoot项目没有把依赖的jar包一起打包的问题解决

    2021-08-11 12:15:02
  • 关于springboot2.4跨域配置问题

    2022-05-01 17:02:15
  • 浅谈JAVA如何生成UUID唯一标识

    2023-08-12 20:45:03
  • Maven Plugin的@Mojo和@Execute的具体使用

    2021-12-19 05:23:17
  • asp之家 软件编程 m.aspxhome.com