关于多线程我们都知道是重新run方法,今天碰到的问题是需要给run方法传参,查了很多资料终于实现了,下面就是我自己用的方法。
我们需要先创建一个继承runable接口的类,创建我们所需要使用参数的,创建有参构造方法
我这个是实现多线程微信模板推送的方法:
public class XianCheng implements Runnable{
private String openId;
private String carnum;
private String info;
private String accessToken;
private String date;
private List<GllLltCar1List> list;
private List<GllLltCar1List> listover;
public XianCheng(String openId, String carnum, String info, String accessToken, String date,
List<GllLltCar1List> list, List<GllLltCar1List> listover) {
super();
this.openId = openId;
this.carnum = carnum;
this.info = info;
this.accessToken = accessToken;
this.date = date;
this.list = list;
this.listover = listover;
}
public void run() {
for (GllLltCar1List gllLltCar1List : list) {
increase(gllLltCar1List);
}
}
public synchronized void increase (GllLltCar1List gllLltCar1List) {
TuiSongUtil.sendTemplate(openId, gllLltCar1List.getCarnum(), info, accessToken, date);
listover.add(gllLltCar1List);
}
}
这就是我重写的run方法,下面来实现调用
XianCheng xianCheng = new XianCheng(openId, carnum, info, accessToken, date, list,listover);
Thread thread1 = new Thread(xianCheng, "我是一号线程");
Thread thread2 = new Thread(xianCheng, "我是二号线程");
Thread thread3 = new Thread(xianCheng, "我是三号线程");
thread1.start();
thread2.start();
thread3.start();
这样就实现了多线程传参。