|
|
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
Всем доброго дня суток. У меня такой вопрос по многопоточности. Есть функция, в неё передаются параметры. Если я создам несколько потоков и в них буду вызывать эту функцию и передовать в неЁ разные параметры, то будет работать все коректно? Функция обявлена как метод класса Form. Подскажите где можно почитать про многопоточность, и вызовы функций в многопоточности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 06:24 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
mikola1982если параметры передаются в стеке, то все нормально внутри функции, если используешь какие-то общие для разных потоков данные, то разделяй их - читай про синхронизацию. Если мой ТЛ не врет, то ты используешь BCB, тогда еще почитай про метод TThread::Synchronize, можешь отладчиком посмотреть, что происходит при его вызове, чтобы потом не было неожиданностей :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 07:29 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
mikola1982Всем доброго дня суток. У меня такой вопрос по многопоточности. Есть функция, в неё передаются параметры. Если я создам несколько потоков и в них буду вызывать эту функцию и передовать в неЁ разные параметры, то будет работать все коректно? Функция обявлена как метод класса Form. Подскажите где можно почитать про многопоточность, и вызовы функций в многопоточности. В принципе, если функция не меняет (не обращается к (даже через указатели)) статические переменные или глобальные переменные приложения, то можно (примерно(!)) рассматривать запуск нового потока как запуск еще одного экземпляра программы... А если функция использует обращение к глобальным или статическим переменным, то тогда будут проблемы с синхронизацией потоков, которые решаются через критические секции, мьютексы, семафоры и др. механизмы Можно почитать, например, книгу Круглински, Шеферд, Уингоу "Программирование на MS Visual C++ 6.0 для профессионалов"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 07:35 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
Станислав С...кий ССк> Автор: Станислав С...кий ССк> mikola1982 ССк> Всем доброго дня суток. ССк> У меня такой вопрос по многопоточности. Есть функция, в ССк> неё передаются параметры. Если я создам несколько ССк> потоков и в них буду вызывать эту функцию и передовать в ССк> неЁ разные параметры, то будет работать все коректно? ССк> Функция обявлена как метод класса Form. Подскажите где ССк> можно почитать про многопоточность, и вызовы функций в ССк> многопоточности. ССк> В принципе, если функция не меняет (не обращается к ССк> (даже через указатели)) статические переменные или ССк> глобальные переменные приложения, то можно (примерно(!)) ССк> рассматривать запуск нового потока как запуск еще одного ССк> экземпляра программы... А если функция использует ССк> обращение к глобальным или статическим переменным, то ССк> тогда будут проблемы с синхронизацией потоков, которые ССк> решаются через критические секции, мьютексы, семафоры и ССк> др. механизмы ССк> Можно почитать, например, книгу Круглински, Шеферд, ССк> Уингоу "Программирование на MS Visual C++ 6.0 для ССк> профессионалов"... Тема Ответить Сообщение -- Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 07:45 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
Станислав С...кий ССк> Можно почитать, например, книгу Круглински, Шеферд, ССк> Уингоу "Программирование на MS Visual C++ 6.0 для ССк> профессионалов"... Рихтера надо читать :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 07:45 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
В вызываемую функцию, передаются в виде парметров классы, которые евляются членами классами Form, но для каждого потока создал свой класс,таким образом данные между потоками не как не пересекаются. Пишу на BCB, верно. При использовании Synchronize, первый же запускаймый поток не дает создать другие, пока не выполнится (правдо пробывал передавать тогда в функции TMemo, может быть просто он блокировал приложение так как поток основного пытался прорисовать в мемо выводимую инфу.). на данные книги не укажете сылки, или тока они есть в бумажном варианте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 07:49 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
mikola1982 m> При использовании Synchronize, первый же запускаймый поток не m> дает создать другие, пока не выполнитсянеправильно используешь, не к месту mikola1982на данные книги не укажете сылкиРихтер, Windows для профессионалов. В электронном виде точно есть. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 07:55 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас[quot mikola1982] m> неправильно используешь, не к месту ну нет я отказался от этого метода, и пытаюся запустить потоки так. А где лутше использовать эту функцию, в документации написанно для синхронизации с компонентами VCL.? но блин с темиже мемо, приложение то блокируется когда используеш функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 08:00 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
mikola1982без кода ничего не сказать Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 08:49 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
mikola1982 пишет: > У меня такой вопрос по многопоточности. Есть функция, в неё передаются > параметры. Если я создам несколько потоков и в них буду вызывать эту > функцию и передовать в неЁ разные параметры, то будет работать все > коректно? Да, если она не использует глобальных и/или статических данных. (только стековые и динамически выделенные с хранением ссылки на выделенную память в стеке). Если она использует хотя бы одну такую переменную, то тогда надо защищать доступ к этим переменным с помощью критических секций, мьютексов и т.п. Функция обявлена как метод класса Form. Подскажите где можно > почитать про многопоточность, и вызовы функций в многопоточности. Джефри Рихтер. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 09:38 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 10:30 |
|
||
|
Многопоточность! не могу понять некоторые тонкости
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку.Книжку прочел быстро. Если честно то до конца не понял сли я вызываю одну и туже функцию из разных потоков с разными параметрами. И в прикрепленном файле код, посмотрите пожайлуста, и скажите будет работать правильно или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2007, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=285&tid=2028483]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 373ms |

| 0 / 0 |
