Я работаю над большими данными, я пытаюсь распараллелить свои функции процесса. Я могу использовать несколько потоков и обрабатывать каждый пользователь другой темы (у меня есть 200k пользователей).bash append файл из нескольких потоков
Каждый поток должен добавить первые строки n
файла, которые производят в выходном файле, совместно используемый всеми потоками.
Я написал программу на Java, что выполнение head -n 256 thread_processed.txt >> output
(каждый поток будет делать это)
мне нужен выходной файл, который будет написал слитно.
Если поток A написал строки от 0 до 9, а потоки B составили строки от 10 до 19, выход должен быть: [0...9 10... 19]
. Строки не могут перекрываться, это не может быть что-то вроде [0 1 2 17 18 3 4 ...]
Как я могу управлять одновременным доступом для записи к выходному файлу в сценарии bash?
Ваш код Java нужно записать вывод каждого потока в отдельный файл, так что другой поток может объединить их в правильный заказ. Вам не понадобятся все потоки для конкатенации вывода из первых потоков 'k', но вам нужно выполнить первый« k ». – chepner
Сделайте мега-хак и используйте 'sed', чтобы писать на определенную строку. Но сирисло, если вы знаете, как сделать заказ, как предложил chepner или префикс строк с номером и отсортировать их. – bliof
пс. или сделать линии одинакового размера, и вы сможете легко их поместить в правильные вещи из java – bliof