ApplicationRunner
springBoot项目启动时,代码自启动
@Component
@Order(1)
public class HJ212Server implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
runEPServer();
}
/**
* 启动服务
*/
public static void runEPServer(){
//相关操作,需要系统启动时自行运行的代码
}
}
若有多个代码段需要执行,可用@Order注解设置执行的顺序。
线程
方式一:继承Thread类
定义子类继承Thread类。
子类中重写Thread类中的run方法。
创建Thread子类对象,即创建了线程对象。
调用线程对象start方法:启动线程,调用run方法。
注意点:
如果自己手动调用run()方法,那么就只是普通方法,没有启动多线程模式。
run()方法由JVM调用,什么时候调用,执行的过程控制都有操作系统CPU调度决定。
想要启动多线程,必须调用start方法。
一个线程对象只能调用一次start()方法启动,如果重复调用了,则将抛出以上的异常 “IllegalThreadStateException”。
方式二:实现Runnable接口
定义子类,实现Runnable接口。
子类中重写Runnable接口中的run方法。
通过Thread类含参构造器创建线程对象。
将Runnable接口的子类对象作为实际参数传递给Thread类的构造器中。
调用Thread类的start方法:开启线程,调用Runnable子类接口的run方法。