我想从多线程接收文件块并按顺序写入。
我在一个系统上有一个服务器文件,通过 4 个线程将文件发送到 4 个块中,现在我在另一台机器上有一个客户端程序,我想用 4 个线程接收该文件并以正确的顺序将其写入磁盘。我不知道按顺序接收和写信你能帮忙吗?!
谢谢您的提前!!
除非有特殊情况,否则绝对没有理由这样做。单个线程从 Socket 检索数据的速度远远快于数据传输的速度。
但是如果你确实想这样做,你可以这样做
public static class Multireceiver implements Runnable {
static AtomicInteger step = new AtomicInteger(0);
InputStream s;
int spot;
public Multireceiver (InputStream in) {
s = in;
}
public void run() {
spot = step.incrementAndGte();
//grab a bunch of bytes and put them in an object with the step number attached
}
}
然后您只需按点订购部分下载并重新组装数据即可。但同样,所有这些通常都是不必要的