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是线程安全的,即对任何方法(包括静态方法)都可以不考虑线程冲突,但有一个前提,就是不能存在全局变量。如果存在全局变量,则需要使用同步机制。
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/10009094.html