Класс Thread в C#
Класс Thread - управляемая обёртка над потоком ОС: у него свой стек, а планировщик ОС решает, когда код потока реально выполнится на процессоре.
Вызов Start переводит поток в состояние выполнения; Join блокирует вызывающий поток до полного завершения worker. Без Join главный поток может напечатать результат раньше, чем worker успеет записать общие данные.
Запустим поток, который пишет в общее поле, дождёмся его конца и проверим, что значение уже видно. Порядок такой, потому что главный поток не читает flag раньше записи:
int flag = 0;
Thread worker = new(() =>
{
Console.WriteLine(7);
flag = 1;
});
worker.Start();
worker.Join();
Console.WriteLine(flag);
Запустите поток, который выводит в консоль строку "ready" и записывает в общее поле число 4. Дождитесь конца потока и выведите это поле.