LINUX.ORG.RU

pthread вложенные функции


0

1

Доброго времени суток!

Есть конструкция которая вызывает у меня сомнения. Пример думаю понятен будет.


call_loop {
 for ( ; ; ) {
 }
}

create_thread {
 call_loop();
}


main
 create_thread(func);
 create_thread(func);
 create_thread(func);
 create_thread(func);

Теперь вопрос. call_loop будет общий для всех нитей? то есть фактически все нити уйдут в одну функцию?

Спасибо!

фактически все нити уйдут в одну функцию

Что вы имеете в виду? Да, будут выполнять одну и ту же функцию.

Более развернутый пример кода помог бы точнее ответить на ваши вопросы.

P.S. Язык?

trex6 ★★★★★ ()
Ответ на: комментарий от staseg

То есть, начиная с create_thread, все вызываемые в последствии функции будут выполняться в контексте (на стеке) этого потока.

staseg ★★★★★ ()

Теперь вопрос. call_loop будет общий для всех нитей? то есть фактически все нити уйдут в одну функцию?

да, тебя что интересует? Разделяемые переменные?

Boy_from_Jungle ★★★★ ()
Ответ на: комментарий от trex6

К примеру внутри функции идет сложный расчет. который использует локальные для функции переменные. Будут ли потоки переписывать одни и те же переменные или в каждом потоке они будут свои?. То есть к примеру когда делаю вывод в stdout результаты то я понимаю что это единичный ресурс и его надо разделять между потоками. Пока писал кажется сам понял. В данном случае все переменные буду для каждого потока в стеке свои? если они не объявлены как глобальные или статичные.

friniz ()
Ответ на: комментарий от friniz
Да.

Рекомендую несколько глав про ассемблер почитать, чтобы лучше представлять, какие переменные где живут и как от этого зависит их область видимости.
trex6 ★★★★★ ()
Ответ на: комментарий от trex6

Извини, а ты не мог бы не злоупотреблять форматированием? Постоянное использование [code] начинает раздражать.

mono ★★★★★ ()

Код будет использоваться один и тот же, но у каждого треда будет своя копия локальных переменных (свой стек).

m0rph ★★★★★ ()
Ответ на: комментарий от trex6

Оно выбивается из общего вида форума - раз. Из-за [code] не подсвечиваются ссылки, которые ты оставляешь - два.

Да, читать такое очень некомфортно.

mono ★★★★★ ()
Ответ на: комментарий от mono

Да, читать такое очень некомфортно.

Прикручивайте ограничение на использование code n-раз в сутки. Елочки сделают этот форум супер технологичным.

baverman ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.