首先创建一个Java类继承Thread类并重写run方法实现新线程的创建
以如下代码为例
因为需要传参吗,所以创建参数String类型的url和json
之后我们创建构造器,通过构造器来赋值,也可通过set方法赋值,
这里因为我需要外界给我传参,即在new这个WebSocketThread对象是传参
然后在run方法中实现我们的业务逻辑,将需要异步处理的业务逻辑写进来
最后就是这样ok了
@Slf4j
@Data
public class WebSocketThread extends Thread{
private String url;
private String json;
public WebSocketThread() {}
public WebSocketThread(String url, String json) {
this.url = url;
this.json = json;
}
@Override
public void run() {
try {
log.info("消息发送中...");
HttpClientUtil.doPostJson(url, json);
} catch (Exception e) {
e.printStackTrace();
log.info("POST请求错误!" + e);
}
}
}
异步实现调用
// 多线程异步处理,防止堵塞断线
WebSocketThread thread = new WebSocketThread(httpUrl, msg);
thread.start();
这里调用.start()方法 启动线程,然后由JVM调用此线程中的run()方法
如果直接调用.run() 相当于普通线程,并不会重开一个线程