在实际运用中,利用多线程进行数据处理分担压力
此例子是模拟实际生产中利用10个线程处理10W条数据(模拟1000条)的数据插入操作
public class MyTest implements Runnable {
/**
* 自增ID
*/
private static int incrementId = 1;
public synchronized static int getincrementId() {
return incrementId++;
}
public void run() {
int id = 0;
while ((id = getincrementId()) <= 1000) {
("插入数据主键:" + id + " 当前线程" + ().getName() + " ");
}
}
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
Thread thread = new Thread(new MyTest());
("线程" + i);
();
}
}
}
通过控制台的打印就可以很清楚的发现线程之间在相互作业,互不影响,synchronized 利用将自增方法包裹,实现了,线程之间的安全问题,也可以用Lock锁实现,同理