И где тут "два потока"? Вижу, что один запускает второй и ждёт пока тот закончит.
Так два потока же запускаются, не?
Где? Запускается один, а тот, что его запускает зависает в Join.
А, тьфу, вижу. Плохо код читаю.
Очень плохой код даже для подобного бенча. Ты можешь точно ответить как твои потоки получают доступ до i и m, и где они хранятся?
как минимум создание потока безумно дорого, попробуй из тредпулла достать
Заделай два метода и две переменные i и ii И померяй. Проблемы с доступом к общей переменной
Варианты ответа - переменные хранятся на стеке главного потока и новые потоки получили ссылку на его стек (нет, так никто не делает) - переменная со стека главного потока неявно копируется на хип для каждого нового потока отдельно, замыкается в нём и далее каждый поток работает со своей хип копией - переменные копируются по значению на стеки новых потоков и далее каждый поток работает со своей стек копией - переменная один раз боксится и далее новые потоки конкурентно читают общие ресурсы с хипа Какой вариант думаешь правильный?
Узнать бы ещё что за общая переменная!
А почему так не кто не делает 1 вариант ответа ?
Стек родительского потока может сдохнуть до того, как это сделают дочерние.
Это UB по многим причинам даже в плюсах, уверен в дотнете рантайм никогда тебе код так не скомпилит и будет делать дефенсив копии
В начале я бы ответил на этот вопрос
Я не знаю, из кода непонятно. Но то что они явно не апдейтят твои стековые i,m это очевидно
Кстати почему у висуал студио такие моменты когда ты создаёшь кнопку он тебе задаёт предупреждение то что название кнопки ошибка лучше напишите с большой буквы хотя по умолчанию висуал студио с маленькой пишет , это фича или что ?
Обсуждают сегодня