Являются ли встроенные функции в C / C ++ способом сделать их поточно-ориентированными? - PullRequest
6 голосов
/ 13 апреля 2009

Я делаю следующие рассуждения, пожалуйста, скажите мне, что не так (или правильно) в этом:

"Если встраивание функции дублирует код в месте вызова функции, то статические и локальные переменные дублируются для каждой вызывающей ее функции, и если существует только один поток, выполняющий функцию, которая вызывает встроенный одновременно время, то код является потокобезопасным ".

"А если это не помогает со статическими и глобальными переменными, то с кодом, создающим временные переменные?"

Спасибо

Ответы [ 11 ]

0 голосов
/ 13 апреля 2009

Совсем нет.

Чтобы быть поточно-ориентированным, функция должна быть поточно-ориентированной по отношению к ЛЮБОМУ экземпляру функции, включая ее самого; несколько потоков могут выполнять один и тот же экземпляр встроенной функции одновременно.

Следовательно, даже если компилятор сделал то, что вы предложили (чего не следует делать, как говорили другие), это все равно не сделает его поточно-ориентированным.

...