работа со списками асинхронна?



  • скажите, если запустить в многопотоке такие вещи как 'взять строку из списка с удалением. записать список в файл" потоки будут ждать свой очереди, одновременно не будут эти действия делать?



  • @bronshik said in работа со списками асинхронна?:

    скажите, если запустить в многопотоке такие вещи как 'взять строку из списка с удалением. записать список в файл" потоки будут ждать свой очереди, одновременно не будут эти действия делать?

    Работа с одним и тем же файлом в многопотоке будет полна ошибок. Блокировки потоков нет, все будут писать и читать одновременно. Лучше используйте ресурс или глобальную переменную.



  • @fox said in работа со списками асинхронна?:

    @bronshik said in работа со списками асинхронна?:

    скажите, если запустить в многопотоке такие вещи как 'взять строку из списка с удалением. записать список в файл" потоки будут ждать свой очереди, одновременно не будут эти действия делать?

    Работа с одним и тем же файлом в многопотоке будет полна ошибок. Блокировки потоков нет, все будут писать и читать одновременно. Лучше используйте ресурс или глобальную переменную.

    Я вобщем хочу запустить такую функцию(вложение) в многопотоке. Это цикл for, с условием пока не кончатся элементы в списке. Чтение ИЗ файла происходит вне функции, до ее запуска и в однопоток. В функции есть только запись в файл, а читается только список. Админ как-то писал о том что синхронно, что асинхронно, сходу не могу найти. Надо бы завтра быстро прогнать пару файлов через этот шаблон, не хочу провозится. В однопоток все работает отменно, только идет часами
    ((0_1552541115104_12233.jpg



  • @bronshik said in работа со списками асинхронна?:

    @fox said in работа со списками асинхронна?:

    @bronshik said in работа со списками асинхронна?:

    скажите, если запустить в многопотоке такие вещи как 'взять строку из списка с удалением. записать список в файл" потоки будут ждать свой очереди, одновременно не будут эти действия делать?

    Работа с одним и тем же файлом в многопотоке будет полна ошибок. Блокировки потоков нет, все будут писать и читать одновременно. Лучше используйте ресурс или глобальную переменную.

    Я вобщем хочу запустить такую функцию(вложение) в многопотоке. Это цикл for, с условием пока не кончатся элементы в списке. Чтение ИЗ файла происходит вне функции, до ее запуска и в однопоток. В функции есть только запись в файл, а читается только список. Админ как-то писал о том что синхронно, что асинхронно, сходу не могу найти. Надо бы завтра быстро прогнать пару файлов через этот шаблон, не хочу провозится. В однопоток все работает отменно, только идет часами
    ((0_1552541115104_12233.jpg

    Вы ведь в курсе, что потоки из "Вызов функции в несколько потоков" не будут знать о вашем списке в локальной переменной?


    Как происходит запись данных в файл с добавлением строк? Сперва файл читается, затем к этой информации добавляется новая строка и этой информацией перезаписывается весь файл. Если несколько потоков будут делать это одновременно, могут возникнуть разного рода ошибки.

    Для записи данных в файл в многопотоке лучше используйте ресурс "из файла" с опцией "запись" без "чтение".


Log in to reply