Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
27 Ноября 2024, 10:09:28


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: [c++]разнести класс на потоки  (Прочитано 18242 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Леголегс
Гуру
******

Карма: 18
Сообщений: 1006


Fedora 12 x86_64


Награды
« : 02 Марта 2009, 23:33:12 »

Ну что-то вроде этого я и имел ввиду. Надо учесть ряд моментов:
1. возможно, захочется юзать в потоке членов класса. Это нормально и стесняться тут нечего Улыбка надо, само собой передать в secthread указатель на Pinger (типа pthread_create(&thread, NULL, secthread, this)).
2. Имей однако ввиду, что при 1. надо быть осторожным, трогая из основного потока содержимое Pinger. Сказав 'A', говори 'B'. Почти наверняка от синхронизации ты не отвертишься.
3. Естественно само собой разумеется надо в деструкторе мочить поток. Мочить можно по-плохому (man pthread_cancel) или по хорошему (послать так или иначе сообщение и ждать выхода с помощью pthread_join).
4. И если будешь юзать исключения, то try/catch должны быть в том же потоке, что и throw. Не знаю пока как в gcc, а в борландбилдере нарушение этого правила вызывало ужасные сообщения об ошибках.
Записан

[ Мой FTP ftp://legolegs.homelinux.net ]
[ Репозиторий Fedora http://fedora.leschat.net/ ]
[ Репозиторий Ubuntu http://ubuntu.leschat.net/ ]
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM