Всем привет, начал изучать потоки. Автор курса, который я прохожу, привел пример работы с статическими методами при многопоточности - где обратил внимание, что хоть обычно статический метод обычно один - т.к принадлежит всему объекту. Но при этом при работе с потоками при выполнении этого метода в обеих потоках, например первичном и вторичном, для каждого потока слздается как бы "копия" статического метода для каждого потока; при этом автор отмечает слово "копия" используется для упрощенного понимания в данном учебном материале, после чего. - цитирую. - " На самом деле происходят очень хитрые процессы' такие как - локальным хранелищем потока с сохранением промежуточных вычислений регистров - т.к НА САМОМ ДЕЛЕ СТАТИЧЕСКИЙ МЕТОД ВСЕ РАВНО ОДИН, но благодоря этим сложным процессам и механизмам у нас создается иллюзия того , что статический метод копируется. ... Но нам как высокоуповневым программистам это не интерестно.'"
кто может мне объяснить, что это за механизмы и как они используюются для достижения такой цели , как создание иллюзии копии статического метода, и при чем тут термины прииведенные автором : хранелищем потока с сохранением промежуточных вычислений регистров и что они ОЗНАЧАЮТ?
Забыл сказать, что Если автор всё же ошибался, тр порошу дать определение понятий. Приведенных в цитате и все же может этой цитатой и тем, что хотел сказать автор есть какая то взаимосвязь и цитата послужит подсказкой. Заранее спасибо!
В .NET разделяемыми ресурсами являются данные, но не методы. Т.е. все что находится в теле метода и сам метод, может обрабатываться параллельно в любом количестве потоков независимо друг от друга, а вот например поле статического класса уже будет видно сразу нескольким потокам и доступ к нему нужно делать потокобезопасным.
По вашему вопросу, в общем случае нет разницы статический метод или нет, любой метод можно запустить на параллельное исполнение в разных потоках. Важно только следить как эти методы будут работать с общими ресурсами.
Вот такие вот курсы. Пурга. Ни обычные методы классов, ни статические не копируются.
Возможно имелся ввиду стек, который системой создается для каждого потока, но и стек это не копирование.
Вместо курсов, лучше уж почитайте книгу Рихтер "windows для профессионалов"
Алексей: Стек каждый свой только для потоков, в функции используется стек потока который вызвал функцию. Функция всего лишь откусывает часть пространства доступного ей стека.