powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Многопоточность! не могу понять некоторые тонкости
13 сообщений из 13, страница 1 из 1
Многопоточность! не могу понять некоторые тонкости
    #34668792
mikola1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня суток.
У меня такой вопрос по многопоточности. Есть функция, в неё передаются параметры. Если я создам несколько потоков и в них буду вызывать эту функцию и передовать в неЁ разные параметры, то будет работать все коректно? Функция обявлена как метод класса Form. Подскажите где можно почитать про многопоточность, и вызовы функций в многопоточности.
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668814
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikola1982если параметры передаются в стеке, то все нормально
внутри функции, если используешь какие-то общие для разных потоков данные, то разделяй их - читай про синхронизацию.
Если мой ТЛ не врет, то ты используешь BCB, тогда еще почитай про метод TThread::Synchronize, можешь отладчиком посмотреть, что происходит при его вызове, чтобы потом не было неожиданностей :)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668818
mikola1982Всем доброго дня суток.
У меня такой вопрос по многопоточности. Есть функция, в неё передаются параметры. Если я создам несколько потоков и в них буду вызывать эту функцию и передовать в неЁ разные параметры, то будет работать все коректно? Функция обявлена как метод класса Form. Подскажите где можно почитать про многопоточность, и вызовы функций в многопоточности.
В принципе, если функция не меняет (не обращается к (даже через указатели)) статические переменные или глобальные переменные приложения, то можно (примерно(!)) рассматривать запуск нового потока как запуск еще одного экземпляра программы...
А если функция использует обращение к глобальным или статическим переменным, то тогда будут проблемы с синхронизацией потоков, которые решаются через критические секции, мьютексы, семафоры и др. механизмы

Можно почитать, например, книгу Круглински, Шеферд, Уингоу "Программирование на MS Visual C++ 6.0 для профессионалов"...
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668826
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кий

ССк> Автор: Станислав С...кий
ССк> mikola1982
ССк> Всем доброго дня суток.
ССк> У меня такой вопрос по многопоточности. Есть функция, в
ССк> неё передаются параметры. Если я создам несколько
ССк> потоков и в них буду вызывать эту функцию и передовать в
ССк> неЁ разные параметры, то будет работать все коректно?
ССк> Функция обявлена как метод класса Form. Подскажите где
ССк> можно почитать про многопоточность, и вызовы функций в
ССк> многопоточности.

ССк> В принципе, если функция не меняет (не обращается к
ССк> (даже через указатели)) статические переменные или
ССк> глобальные переменные приложения, то можно (примерно(!))
ССк> рассматривать запуск нового потока как запуск еще одного
ССк> экземпляра программы... А если функция использует
ССк> обращение к глобальным или статическим переменным, то
ССк> тогда будут проблемы с синхронизацией потоков, которые
ССк> решаются через критические секции, мьютексы, семафоры и
ССк> др. механизмы

ССк> Можно почитать, например, книгу Круглински, Шеферд,
ССк> Уингоу "Программирование на MS Visual C++ 6.0 для
ССк> профессионалов"... Тема Ответить Сообщение


--
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668827
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кий ССк> Можно почитать, например, книгу Круглински, Шеферд,
ССк> Уингоу "Программирование на MS Visual C++ 6.0 для
ССк> профессионалов"... Рихтера надо читать :)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668831
mikola1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вызываемую функцию, передаются в виде парметров классы, которые евляются членами классами Form, но для каждого потока создал свой класс,таким образом данные между потоками не как не пересекаются. Пишу на BCB, верно. При использовании Synchronize, первый же запускаймый поток не дает создать другие, пока не выполнится (правдо пробывал передавать тогда в функции TMemo, может быть просто он блокировал приложение так как поток основного пытался прорисовать в мемо выводимую инфу.).
на данные книги не укажете сылки, или тока они есть в бумажном варианте?
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668840
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikola1982 m> При использовании Synchronize, первый же запускаймый поток не
m> дает создать другие, пока не выполнитсянеправильно используешь, не к месту
mikola1982на данные книги не укажете сылкиРихтер, Windows для профессионалов. В электронном виде точно есть.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668842
mikola1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас[quot mikola1982] m> неправильно используешь, не к месту
ну нет я отказался от этого метода, и пытаюся запустить потоки так. А где лутше использовать эту функцию, в документации написанно для синхронизации с компонентами VCL.? но блин с темиже мемо, приложение то блокируется когда используеш функцию.
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668898
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikola1982без кода ничего не сказать
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34668987
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikola1982 пишет:
> У меня такой вопрос по многопоточности. Есть функция, в неё передаются
> параметры. Если я создам несколько потоков и в них буду вызывать эту
> функцию и передовать в неЁ разные параметры, то будет работать все
> коректно?

Да, если она не использует глобальных и/или статических данных.
(только стековые и динамически выделенные с хранением ссылки на
выделенную память в стеке). Если она использует хотя бы одну
такую переменную, то тогда надо защищать доступ к этим переменным
с помощью критических секций, мьютексов и т.п.

Функция обявлена как метод класса Form. Подскажите где можно
> почитать про многопоточность, и вызовы функций в многопоточности.

Джефри Рихтер.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34669167
J R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
J R
Гость
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34675598
mikola1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за подсказку.Книжку прочел быстро. Если честно то до конца не понял сли я вызываю одну и туже функцию из разных потоков с разными параметрами.
И в прикрепленном файле код, посмотрите пожайлуста, и скажите будет работать правильно или нет?
...
Рейтинг: 0 / 0
Многопоточность! не могу понять некоторые тонкости
    #34678689
mikola1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо, вроде разобрался, все работает.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Многопоточность! не могу понять некоторые тонкости
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]