Skip to content

Latest commit

 

History

History
17 lines (9 loc) · 2.92 KB

Tricky_Questions.md

File metadata and controls

17 lines (9 loc) · 2.92 KB

Tricky Questions

В чем разница между потоком и процессом?

Процессы и потоки связаны друг с другом, но при этом имеют существенные различия.

Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и память). Каждый процесс выполняется в отдельном адресном пространстве: один процесс не может получить доступ к переменным и структурам данных другого. Если процесс хочет получить доступ к чужим ресурсам, необходимо использовать межпроцессное взаимодействие. Это могут быть конвейеры, файлы, каналы связи между компьютерами и многое другое.

Поток использует то же самое пространства стека, что и процесс, а множество потоков совместно используют данные своих состояний. Как правило, каждый поток может работать (читать и писать) с одной и той же областью памяти, в отличие от процессов, которые не могут просто так получить доступ к памяти другого процесса. У каждого потока есть собственные регистры и собственный стек, но другие потоки могут их использовать.

Поток — определенный способ выполнения процесса. Когда один поток изменяет ресурс процесса, это изменение сразу же становится видно другим потокам этого процесса.

Разбор взят из книги Гейл Л. Макдауэлл «Cracking the Coding Interview»

И процессы, и потоки являются независимыми последовательностями выполнения. Типичное отличие состоит в том, что потоки (одного и того же процесса) выполняются в общем пространстве памяти, а процессы-в отдельных пространствах памяти.

More here