Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Глава Стек потока #58

Closed
sidristij opened this issue Aug 13, 2018 · 6 comments
Closed

Глава Стек потока #58

sidristij opened this issue Aug 13, 2018 · 6 comments

Comments

@sidristij
Copy link
Owner

sidristij commented Aug 13, 2018

Здесь я предлагаю вести обсуждение главы. Ошибки, дополнения.

@DmitriyMaksimov
Copy link

@sidristij
Copy link
Owner Author

sidristij commented Apr 10, 2019

Images paths fixed

@ghost
Copy link

ghost commented Apr 18, 2019

Подскажите, а где код к главе?
Интересует вот эта строчка - var forked = Fork.CloneThread();

@doomviruz
Copy link

@RomanDubinin
Copy link

Добрый день!
Возник вопрос о передаче параметров через регистры.

Первое, что делает код, скомпилированный JIT'ом: он сохраняет параметры метода в стек (начиная с третьего). При этом первые два передаются через регистры. Тут важно помнить, что первым параметром экземплярных методов передаётся указатель на тот объект, с которым работает метод. Т.е. указатель this. Так что в этих (почти всех) случаях для регистров остаётся всего один параметр, а для всех остальных -- стек;

Что если первый параметр метода (второй после this) - структура, которая не помещается в регистр?
Ведь как мы знаем из главы Ссылочные и значимые типы данных параметр, принимающий значимый тип хранит в себе именно значение, а не ссылку.

@RomanDubinin
Copy link

Поторопился с вопросом)
Далее в главе Ссылочные и значимые типы данных написано о том, что каждое поле структуры - отдельный параметр метода. Вопрос решён)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants