Arm79 , Если прав
Pallaris , и на время выполнения функции, она блокируется Фреймвоком, то никаких проблем не должно быть.
Однако, в одной из книг, в качестве примера, разбирался доступ к функции именно в таком ключе, что и в моем вопросе.
[quote
Arm79 ]Функция - это выделенный кусок исполнимого кода,[/quote] и ее экземпляр не создается при исполнении. Если поток заходит в функцию и присваивает a=2, b=2, после чего второй поток заходит в нее-же и присваивает тем-же ячейкам памяти a=3, b=3, то первая функция на выходе return a+b получит 6, а не 2+2=4.
Arm79 |
---|
Синхронизируют, при необходимости, только доступ к данным. Например, передающиеся по ссылке объекты. |
Доступ к функции, как правило, и есть доступ к объектам и получение ссылки на объект. И что там происходит в объекте, далеко не всегда очевидно.
Хорошо пусть будут данные, пусть при обращении к функции объекта мы должны получить коллекцию строк (Rows), а другой поток одновременно хочет получить некую другую коллекцию.
Хотелось бы подчеркнуть, что потоки пишут данные в разные места, и здесь четко разделены, а вот читают одни и те-же, либо данные других потоков, но чтение идет в разном контексте. Т.е. обращаясь к одним и тем-же функциям объектов делают разные вызовы.
Хотелось бы, чтобы
Pallaris был прав, но где это четко прочитать?
Если возможно, цитату с ссылкой. К сожалению, в Инете ищется все хуже и хуже. :(