На собеседовании в ИТ-компании было предложено ответить на следующий вопрос.
Задача. Дано такой код:
Процедуру
Немного теории. Нити — это параллельно-исполняемые задачи в пределах одного процесса. Основное различие между процессами и нитями такое, что все нити одного процесса работают в общем адресном пространстве своего процесса.
Я не называю нити потоками, что бы не путать потоки выполнения (thread) и потоки данных (stream).
Задача. Дано такой код:
static int counter = 0; void worker() { for (int i = 1; i <= 10; i++) counter++; }
Процедуру
worker()
запускают из двух нитей. Какое значение будет содержать переменная counter
по завершении работы обеих нитей и почему?Немного теории. Нити — это параллельно-исполняемые задачи в пределах одного процесса. Основное различие между процессами и нитями такое, что все нити одного процесса работают в общем адресном пространстве своего процесса.
Я не называю нити потоками, что бы не путать потоки выполнения (thread) и потоки данных (stream).