在工作中有需求任务: 开启多个多线程,等多线程跑完之后执行插入操作。对于此需求,打算利用多线程的join()关键字来实现。代码如下:
PrincThread a = new PriceThread(A);
a.start();
PrincThread b = new PriceThread(B);
b.start();PrincThread c = new PriceThread(C);
c.start();try {
a.join();
b.join();
c.join();
} catch (InterruptedException e) {
e;
}
// join是Thread类的一个方法,启动线程后直接调用,即join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。
//等待多线程全部执行完毕后执行以下插入代码
int result = priceService.doInsert();
多线程计数器:
public class PriceThread extends Threads {
//定义一个计数器 count
public static int count = 0;
//利用synchronized关键字,实现 count 线程间调用同步
public synchronized static void inc() {
count++;
}
public void run() {
//调用 inc()方法,实现多线程每次调用count自增
PriceThread.inc();
System.out.println("count = " + count); //综合上面第一部分代码,执行完最后count = 3
}
}
注:此为自己在项目中的使用多线程的学习,记录下来以便后来学习,如有错误请大家指正。