2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Теория потокового программирования
Сообщение22.08.2010, 14:48 


08/11/09
156
Что почитать?

И конкретный вопрос: если объект создан в одном потоке, а его метод вызывается из другого, это неправильно?

 Профиль  
                  
 
 Re: Теория потокового программирования
Сообщение22.08.2010, 16:39 
Заслуженный участник


04/05/09
4582
kuraga в сообщении #346219 писал(а):
если объект создан в одном потоке, а его метод вызывается из другого, это неправильно?
Это нормально. Надо только удостовериться, что объект действительно уже создан, и готов для работы.

 Профиль  
                  
 
 Re: Теория потокового программирования
Сообщение22.08.2010, 16:48 
Заслуженный участник


28/04/09
1933
kuraga в сообщении #346219 писал(а):
если объект создан в одном потоке, а его метод вызывается из другого, это неправильно?
Т.к. память у всех потоков внутри одного процесса общая, то ничего страшного в этом нет. Другое дело, что если этот самый метод работает с данными (хотя бы с полями класса), то тут уже необходимо задуматься о синхронизации по причине возможных конфликтов.
Бывает, правда, что по к-л причинам логика функционирования методов класса может оказаться неприспособленной к вызовам из разных потоков. Так, в Qt все объекты классов, относящихся к работе интерфейса программы, и вызовы методов этих классов обычно размещаются в одном потоке, а остальные потоки для работы с интерфейсом обращаются к "главному" (интерфейсному) потоку через механизм сигналов-слотов.

 Профиль  
                  
 
 Re: Теория потокового программирования
Сообщение22.08.2010, 20:43 
Аватара пользователя


31/10/08
1244
kuraga
Цитата:
другого, это неправильно?

Это проблема. Дело в том что пока ты проверил что объект существует второй поток может его удалить до того как ты успеешь получить указатель на метод или после того как получил но еще не успел вызвать. Советую почитать про OpenMP. Он родился как результат первых исследования много поточных приложений.

 Профиль  
                  
 
 Re: Теория потокового программирования
Сообщение25.08.2010, 20:42 


08/11/09
156
Ну а если я в Qt вызываю метод объекта, созданного в другом потоке, то он выполняется в текущем?

 Профиль  
                  
 
 Re: Теория потокового программирования
Сообщение11.09.2010, 09:17 


11/09/10
2
Неважно кто объект создает, код всегда выполняется тем же потоком который вызывает метод, проблемы у потоков только в доступе к данным(памяти), если метод который у тебя вызывается из разных потоков записывает что-то в один и тот-же участок памяти то без синхронизации у тебя в этом месте будут проблемы.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group