• java 如何使用多线程调用类的静态方法?


    1.情景展示

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

      如何通过多线程实现?

    2.分析

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

    3.解决方案

      准备工作

      logo文件  

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

      代码实现

    /**
     * 多线程测试类
     * @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是线程安全的,即对任何方法(包括静态方法)都可以不考虑线程冲突,但有一个前提,就是不能存在全局变量。如果存在全局变量,则需要使用同步机制。   

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    chmod命令详细用法
    mysql删除sql表添加别名及删除sql的注意事项
    bootstrap栅格系统进行偏移格式
    mysql中时间计算函数SQL DATE_SUB()用法
    阿里图标的应用教程
    jquery.cookie.js中$.cookie() 使用方法
    $.cookie()取值设置
    java中年月日的加减法,年月的加减法使用
    IMAP命令与分析
    Telnet IMAP Commands Note
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/10009094.html
Copyright © 2020-2023  润新知