1、思考有1000万行数据,怎样才能快速的读取出来,如果是你,你会怎样设计程序
package com.sj.homework;
//思考有1000万行数据,怎样才能快速的读取出来,如果是你,你会怎样设计程序
public class Nums implements Runnable{
public int num = 10000000;//数据
public Object obj = new Object();//定义对象
@Override
public void run() {
while (true) {
synchronized (obj) {//解决多线程争抢问题
if (num>0) {//处理过程
// System.out.println(Thread.currentThread().getName()+":"+(num--));
num--;
} else {//处理完跳出循环,解决死循环,停止占用cpu
break;
}
}
}
//处理完数据后执行
System.out.println(Thread.currentThread().getName()+"下班了!");
}
}
package com.sj.homework;
/**
* @desc 多线程处理1000万条数据
* @author ws
* @time 8.9
*/
public class Test {
public static void main(String[] args) {
Nums ns = new Nums();
for (int i = 1; i <= 100; i++) {//100位技师处理数据
Thread th = new Thread(ns, i+"号技师");//第一个参数是,runnable以参数的形式传递给thread的构造器
//第二个参数是,给新线程个名字
th.start();//开启新的线程
}
}
}