Какая разница: многопоточность против Asyn c против Syn c против - PullRequest
0 голосов
/ 03 мая 2020

Я узнаю о различных типах параллелизма (я использую Python, но вопрос применим за его пределами). Типы, на которые я смотрю:

  • Многопоточность
  • Asyn c
  • Syn c
  • Многопроцессорная обработка

Насколько я понимаю, asyn c и syn c могут использовать один поток или несколько. Когда используется несколько потоков, это считается многопоточностью. Кроме того, многопоточность - более широкий термин, относящийся к программам async или sync, использующим более одного потока. Это означает, что приведенный выше список действительно должен выглядеть следующим образом:

  • Async
    • Одиночный поток
    • Многопоточный
  • Синхронизация
    • Однопоточность
    • Многопоточность
  • Многопроцессорная обработка

Мои знания для async и sync основаны на этом article .

Часть, которая меня немного смущает, - это разница между многопроцессорностью и многопоточностью. Я знаю, что в многопоточности используются потоки, а в многопроцессорных - процессы. Глядя на этот SO Вопрос , я думаю, что главное отличие состоит в том, что у одного есть общее пространство памяти, а у другого нет. Хотя я не совсем понимаю, что это значит. Я также слышал, что многопоточность может быть не очень хороша для программ, связанных с процессором, почему?

Помимо этих вопросов, было бы очень полезно хорошее сравнение четырех, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...