§ Переключательная многопоточность. Основа – резидентные программы. Программа размещалась в памяти компа вплоть до перезагрузки системы и управление ей передавалось каким-либо заранее согласованным способом (предопределённой комбинацией клавиш на клавиатуре).
§ Совместная многопоточность. Передача управления от одной программы другой. При этом возвращение управления – это проблема выполняемой программы. Возможность блокировки, при которой аварийно завершаются ВСЕ программы.
§ Вытесняющая многопоточность. ОС централизованно выделяет всем запущенным приложениям определённый квант времени для выполнения в соответствии с приоритетом приложения. Реальная возможность работы нескольких приложений в ПСЕВДОПАРАЛЛЕЛЬНОМ режиме. “Зависание” одного приложения не является крахом для всей системы и оставшихся приложений.
А кто в домене живёт…
Прилагаемый пример демонструрует методы анализа процесса, домена и потоков.
Показывает потоки в процессе, а также сборки, которые выполняются в домене приложения.
using System;
using System.Windows.Forms;
// Это пространство имён требуется для работы с классом Assembly.
using System.Reflection;
// Это пространство имён требуется для работы с классом Process.
using System.Diagnostics;
namespace AppDomain1
{
class MyAppDomain
{
public static void ShowThreads()
{
Process proc = Process.GetCurrentProcess();
foreach(ProcessThread aPhysicalThread in proc.Threads)