我试图理解“多线程步骤”,这是春季批处理中实现并行处理其他并行步骤和分区的方法之一。
我的问题与读者有关。例如,假设有一个包含 1000 条记录的文件,块大小为 100,线程数为 4。所以在这种情况下将有 10 个块,每个线程将被分配一个块开始并且当它完成的剩余块将被分配给线程时,在某个时间点只有 4 个块将由 4 个线程处理。但是线程是如何决定读取哪些数据的呢?假设第一个线程已经在处理 100 条记录,那么第二个线程为什么知道它不应该选择相同的记录并寻找其他线程没有选择的记录。
在这种情况下,是否会有线程之间共享的 Reader 和 writer 的单个实例?如果是,那么任何类级别的资源都不是线程安全的?
谢谢,