# Когда имеет смысл передавать IO в отдельный поток?

DevFeed: [Когда имеет смысл передавать IO в отдельный поток?](<https://devfeed.tech/articles/io-24780.md>)

Original publisher: [Read original article](<https://dev.cheremin.info/2021/05/io.html>)

Author: Ruslan Cheremin (noreply@blogger.com)

Published: 2021-05-24T08:17:00Z

Content type: opinion

Language: ru

Sources: [\>рабочие заметки](<https://devfeed.tech/sources/source-2.md>)

Topics: [IO](<https://devfeed.tech/topics/io.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Low Latency](<https://devfeed.tech/topics/low-latency.md>), [legacy](<https://devfeed.tech/topics/legacy.md>)

Tags: [io](<https://devfeed.tech/tags/io.md>), [latency](<https://devfeed.tech/tags/latency.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [low-latency](<https://devfeed.tech/tags/low-latency.md>), [performance](<https://devfeed.tech/tags/performance.md>), [queueing-theory](<https://devfeed.tech/tags/queueing-theory.md>), [tag-e50b791533a6](<https://devfeed.tech/tags/tag-e50b791533a6.md>)

## AI overview

The article examines when sending network I/O on a separate thread can reduce response latency. It argues that a single-threaded design performs better under low load because it avoids inter-thread communication overhead, while a two-thread design can gain an advantage as load increases. Simulations show that the crossover point depends on the processing and coordination times.

## Source excerpt

Допустим, у нас есть простая система, которая принимает запросы из сети, как-то их обрабатывает ("бизнес-логика"), и отправляет результат назад, в сеть. Мы заинтересованы в быстром отклике (=latency), а отправка - это IO, так что возникает идея ее снести в отдельный поток. Но тогда придется передавать данные из основного потока в поток отправки - а межпоточная коммуникация это какие-то