В чем разница между потоком запроса и потоком программы? - PullRequest
0 голосов
/ 01 апреля 2019

Я почти новичок в Java. Я знаю, что многопоточность - это действие по разделению программы на несколько задач, чтобы они могли работать одновременно. У меня две проблемы с этим понятием.

Прежде всего, было сказано, что сервер приложений создает поток для каждого запроса. Я не могу связать этот поток-запрос с потоками программы. Предположим, что в программе есть 5 потоков для одновременного выполнения действий Как этот отдельный поток на запрос будет обрабатывать 5 потоков этой программы?

Во-вторых, у меня проблемы с пониманием идеи пула потоков. Речь идет о потоках, которые сервер приложений создает для каждого запроса, или о потоках программ, которые выполняют задачи одновременно?

1 Ответ

0 голосов
/ 01 апреля 2019

У меня проблема с пониманием идеи пула потоков.

Простой пул потоков - это набор запущенных потоков (иначе говоря, рабочий потоков), в которых,каждый поток постоянно пытается получить объект task из BlockingQueue, и когда он его получает, он выполняет задачу и затем возвращается в очередь, чтобы дождаться другой.

Задача - это объект с неким известным методом, который рабочий вызывает для «выполнения» задачи.Например, в пулах потоков, определенных стандартной библиотекой Java, объекты задач являются либо Runnable экземплярами, либо Callable экземплярами, а рабочий выполняет задачу, вызывая task.run() или task.call().

...