本文通过代码示例向您介绍如何使用BufferedWriter类实现多线程上传。
// 该示例展示如何使用BufferedWriter类实现多线程上传数据至MaxCompute。
class UploadThread extends Thread {
private UploadSession session;
private static int RECORD_COUNT = 1200;
public UploadThread(UploadSession session) {
this.session = session;
}
@Override
public void run() {
// 生成TunnelBufferedWriter的实例。
RecordWriter writer = session.openBufferedWriter();
Record r = up.newRecord();
for (int i = 0; i < RECORD_COUNT; i++) {
r.setBigint(0, i);
// 调用write接口写入数据。
writer.write(r);
}
// 关闭TunnelBufferedWriter。
writer.close();
}
};
public class Example {
public static void main(String args[]) {
// 初始化MaxCompute和tunnel的代码。
TableTunnel.UploadSession uploadSession = tunnel.createUploadSession(projectName, tableName);
UploadThread t1 = new UploadThread(up);
UploadThread t2 = new UploadThread(up);
t1.start();
t2.start();
t1.join();
t2.join();
// uploadSession提交,结束上传。
uploadSession.commit();
}
该文章对您有帮助吗?