Я пытаюсь освоить Process, Threads, MultiCore и т.д. ... Итак, вот моя аналогия из того, что я узнал ...
Общество похоже на компьютер.
Здание похоже на чип.
Этаж в конкретном здании - это ядро этого чипа.
Таким образом, здание может быть одноэтажным (одноядерный на одном кристалле),
Одноэтажное многоэтажное здание (многоядерное на одном чипе),
Многоэтажное здание, многоэтажноекаждый (многопроцессорный с многоядерным)
Квартира на определенном этаже - это процесс.
Человек, живущий в комнате в определенной квартире, - это нить.
Люди, живущиев той же квартире, разделите одно и то же место.т.е. каждый поток в процессе совместно использует одно и то же адресное пространство.
Каждый человек имеет несколько общих вещей в комнате, таких как кухня, душевая и т. д., т.е. каждый поток в коде общего доступа к процессу, данным, файлам
Душевая комната в конкретной квартире нуждается в синхронизации между людьми (нитями), живущими в этой квартире.Как только один может использовать одновременно.
Каждый человек имеет свой собственный набор вещей, которыми он не делится с другими, например, своим нижним бельем;) (у нити есть свой стек, регистры)
Человек может вызвать новых друзей в свою квартиру.т. е. нить может породить новые нити в соответствии со своими желаниями (может, нить скучает, смеется)
Владелец здания может закрыть любую комнату, создать новые комнаты, назначить новых арендаторов или выбросить их.Ядро может назначать новый процесс, а также создавать разрушающие потоки.
......
Ребята, дайте мне знать, если я правильно понял аналогию.Если что-нибудь еще я могу добавить, чтобы сделать это более ясным или сделать это правильным.
Единственная проблема, которую я вижу, это когда процесс, имеющий множество потоков, работает на разных ядрах ... Есть идеи, как включить это в аналогию? ..
Дайте мне знать.Большое спасибо.:)
Ссылка - https://www.his.se/PageFiles/4854/2010/threads_6slides.pdf?epslanguage=sv