@@ -373,12 +373,20 @@ msgid ""
373373" A related use case is running I/O in parallel with computations in another"
374374" thread."
375375msgstr ""
376+ "Потоки — это техника разделения задач, которые не зависят друг от друга по "
377+ "порядку выполнения. Потоки можно использовать для повышения отзывчивости "
378+ "приложений, которые принимают пользовательский ввод, пока другие задачи "
379+ "выполняются в фоновом режиме. Похожий сценарий — выполнение ввода/вывода "
380+ "параллельно с вычислениями в другом потоке."
376381
377382#: ../../tutorial/stdlib2.rst:174
378383msgid ""
379384"The following code shows how the high level :mod:`threading` module can run "
380385"tasks in background while the main program continues to run::"
381386msgstr ""
387+ "Следующий код показывает, как модуль высокого уровня :mod:`threading` может "
388+ "запускать задачи в фоновом режиме, в то время как основная программа "
389+ "продолжает работать:"
382390
383391#: ../../tutorial/stdlib2.rst:177
384392msgid ""
@@ -403,6 +411,26 @@ msgid ""
403411"background.join() # Wait for the background task to finish\n"
404412"print('Main program waited until background was done.')"
405413msgstr ""
414+ "import threading, zipfile\n"
415+ "\n"
416+ "class AsyncZip(threading.Thread):\n"
417+ " def __init__(self, infile, outfile):\n"
418+ " threading.Thread.__init__(self)\n"
419+ " self.infile = infile\n"
420+ " self.outfile = outfile\n"
421+ "\n"
422+ " def run(self):\n"
423+ " f = zipfile.ZipFile(self.outfile, 'w', zipfile.ZIP_DEFLATED)\n"
424+ " f.write(self.infile)\n"
425+ " f.close()\n"
426+ " print('Архивирование в фоне завершено:', self.infile)\n"
427+ "\n"
428+ "background = AsyncZip('mydata.txt', 'myarchive.zip')\n"
429+ "background.start()\n"
430+ "print('Основная программа продолжает выполняться на переднем плане.')\n"
431+ "\n"
432+ "background.join() # Ждём, пока фоновая задача завершится\n"
433+ "print('Основная программа дождалась окончания фоновой задачи.')"
406434
407435#: ../../tutorial/stdlib2.rst:198
408436msgid ""
@@ -411,6 +439,10 @@ msgid ""
411439"module provides a number of synchronization primitives including locks, "
412440"events, condition variables, and semaphores."
413441msgstr ""
442+ "Основная сложность многопоточных приложений — координация потоков, которые "
443+ "совместно используют данные или другие ресурсы. С этой целью модуль "
444+ "threading предоставляет ряд примитивов синхронизации, включая блокировки, "
445+ "события, условные переменные и семафоры."
414446
415447#: ../../tutorial/stdlib2.rst:203
416448msgid ""
@@ -422,10 +454,17 @@ msgid ""
422454"thread communication and coordination are easier to design, more readable, "
423455"and more reliable."
424456msgstr ""
457+ "Хотя эти инструменты эффективны, незначительные ошибки проектирования могут "
458+ "привести к проблемам, которые трудно воспроизвести. Таким образом, "
459+ "предпочтительный подход к координации задач — сосредоточить весь доступ к "
460+ "ресурсу в одном потоке, а затем использовать модуль :mod:`queue`, чтобы "
461+ "передавать этому потоку запросы от других. Приложения, использующие объекты "
462+ ":class:`~queue.Queue` для межпоточного взаимодействия и координации, легче "
463+ "проектируются, более читабельны и надежны."
425464
426465#: ../../tutorial/stdlib2.rst:214
427466msgid "Logging"
428- msgstr ""
467+ msgstr "Логирование "
429468
430469#: ../../tutorial/stdlib2.rst:216
431470msgid ""
0 commit comments