TGViewer
Dev Easy Notes Dev Easy Notes @dev_easy_notes · 2.91K subscribers
Post #49 1.25K
​​Большая часть проголосовала за IPC (я кстати сам его тоже выбрал), поэтому похардкодим немножечко🦾...

Для начала немного вспомним CS, а конкретнее разницу м/у потоком и процессом. Нужно понимать разницу, чтобы понять что такое вообще IPC, поэтому пройдемся поверхностно.

📝 Процесс это некоторый объект в системе, которому ОС выделяет время процессора, память, доступ к сети, доступ к железкам и т.п. Запускаете программу, ОС для этой программы создает процесс, который получает время процессора и память.

👣Идем дальше, каждый процесс в системе как бы интроверт, он не может обратиться к участку памяти который выделен другому процессу. И это понятно почему, было бы крайне не приятно если бы левая прога начала читать участок памяти где крутится банковское приложение.

У каждого процесса есть состояние. Упростим до 2-х, он может быть либо активен, либо быть приостановлен. Одно из неудобств программирования под Android, что если пользователь свернет наше приложение, система может грохнуть 🧨 наш процесс. Под "грохнуть процесс" подразумевается, что ОС не видит смысла больше выделять оперативную память для этого процесса (нашего приложения) и просто выгружает его, или по другому забирает память 👨‍🦳.

В таком случае, все наши данные которые мы сохраняли в static поля или во ViewModel просто убьются. Однако данные которые успели записаться в Bundle потом восстановятся, не забываем про это.

🧵 Далее идет поток. Поток в некотором грубом смысле это более легкая версия процесса. Мы открываем приложение, система создает для него процесс. Уже в этом процессе мы можем создавать потоки, которые по сути являются просто участками кода которые выполняются паралельно.

🧵 Потоки в отличие от процессов уже имеют доступ к памяти друг друга, потому как находятся в общем участке памяти процесса. Значит создав переменную мы спокойно можем менять её значение из нескольких потоков. Конечно есть свои сложности, но это можно легко сделать.

📵С процессом такое не проканает, нельзя сделать переменную которую можно поменять их нескольких процессов. По сути процессы мало что знаю друг о друге.

Бывают случаи когда нам нужно или получить данные с другого процесса, или наоборот что-то сообщить процессу. Что это за случай разберем в след постах.
  • 👍 4
More from @dev_easy_notes
  1. Sep 24, 2026На всякий случай напомню напомню, если такую хуйню видите, сразу в бан кидаете. Вы скорее…
  2. Aug 4, 2026Короче, поясню, я давно ничего не пишу, потому что заебался) возможно я скоро вернусь, как…
  3. Aug 4, 2026Post #596
  4. Apr 17, 2026Меня вот что еще дико бесит, через год я буду уже как 10 лет в индустрии и все равно, кажд…
  5. Apr 15, 2026video post
  6. Apr 9, 2026Как оценить работу модели? Часто вижу высказывания в стиле: вот новый клод стал тупее, или…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →