Неужели нельзя из одного потока получить доступ к другому, если он вне текущего адресного пространства? Дальше Поясните, что такое "Полная иллюзия"? Статья про потоки от Sun microsystems -> SolarisOS
Понятно же, что потоки выполняются по очереди - планировщик выделяет каждому потоку небольшой отрезок времени эксклюзивной работы с CPU и чередует эти отрезки между потоками. Т.к. отрезки времени сравнительно коротки и планировщик их ловко чередует, создаётся иллюзия, что все потоки работают одновременно.
Щас читаю захватывающий бестселлер про синхронизацию. Может кто посоветует ещё материал - задача: изучить тему вдоль и поперёк, чтоб получить допуск к новому проекту.
Нельзя. Но, как сказано в цитате, есть специальные средства для доступа к другому адресному пространству — IPC. Это скорее вопрос к философам.
Мы знаем, что есть планировщик, мьютексы и прочая хрень. Мы так же знаем стандартные способы управления потоками. Есть ли более тонкие методы работы с этими вещами, без всяких API?
Не более тонко... хм. Так всегда! На одном форуме было: как скрыть ipc$ ресурс? и стали спецы ломать головы над кодами... Кто-то 1 кинул пост: "Суньте в автозагрузку батник с контентом: net share ipc$ /delete" Или всё гениальное просто, или я не понимаю...
В свое время я читал Основы многопоточного, параллельного и распределенного программирования Грегори Р. Эндрюс Foundations of Multithreaded, Parallel and Distributed Programming First Edition Gregory R. Andrews Там с самых низов все расписано. Но читается немного тяжеловато, очень "плотно" подается материал. Как сугубо практическое руководство не подойдет скорее всего, в книжке изложены теоретические основы, подходы к реализации этих механизмов в различных условиях и т.п., без привязки к операционным средам, языкам программирования и технологиям. Языки, библиотеки и некоторые иные высокоуровневые явления просто упоминаются в качестве иллюстраций к изложенному.