Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
1

Создание приоритетного потока

10.07.2014, 10:34. Показов 892. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Подскажите, как с помощью pthread создать поток, который не будет прерван пока не закончит свою работу. Т.е. мне надо создать поток, и далее, не применяя join, продолжить выполнять основной код в основном потоке, а созданный, пускай себе работает. Например, на C# приложение не закончит свою работу, пока не будут завершены все приоритетные потоки. Как сделать приоритетный поток в c++ под linux, можно ли это вообще сделать?

Добавлено через 15 минут
Вот простой пример кода. Хотелось бы, чтобы программа не выходила, пока функция thread_callback потока не отработает, без применения join.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void *thread_callback(void *ptr) {
    for(;;) {
        printf("I am work!");
        sleep(5);
    }
    
    pthread_exit(0);
}
 
int main(int argc, const char * argv[])
{   
    pthread_t th;
    
    
    int ret = pthread_create(&th, NULL, &thread_callback, NULL);
    if (ret) {
        printf("Error");
        return 1;
    }
    
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2014, 10:34
Ответы с готовыми решениями:

Создание нового потока из работающего потока
насколько это корректно? вроде всё нормально работает и именно так как задумывалось, но вопрос...

BIOS не видит приоритетного запуска с usb
Видел предыдущие темы связанные со схожей проблемой, но ответа там не нашел. Может кто-то...

Моделирование многокональной сети приоритетного обслуживания
Здравствуйте, имеется задание: Имеется два канала обработки заявок с заданной...

Создание потока из потока.
Надо создать поток 1, в нем создать поток 2, сам я жуткий дураг, немаловероятно что правильного в...

3
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
10.07.2014, 15:16 2
В чём проблема поставить join в конце main? Много потоков? Можно сделать счётчик для них.
0
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
10.07.2014, 15:39  [ТС] 3
NoMasters, потоков много, из главного эти остальные должны выключаться... Пока что, как я понял, без join никак
0
Эксперт С++
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,880
10.07.2014, 22:22 4
LostCoast, в строке 20 main() вызовите pthread_exit(0)

Цитата Сообщение от man pthread_exit
To allow other threads to continue execution, the main thread should terminate by calling pthread_exit() rather than exit(3).
и еще http://stackoverflow.com/quest... o-complete
1
10.07.2014, 22:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2014, 22:22
Помогаю со студенческими работами здесь

Сброс обработчика прерывания из более приоритетного прер-я
Здравствуйте спецы! Столкнулся с задачей, с которой ранее дел не имел и даже не интересовался. ...

Обработка двух аналоговых сигналов и выдача наиболее приоритетного в параллельном коде
Эвм с обработкой двух аналоговых сигналов и выдачей наиболее приоритетного в параллельном коде. ...

После переключения приоритетного устройства в биосе на привод , при включении не видит биос
выдает строчки reboot and select proper boot device or insert boot media in selected boot device...

Создание потока
В общем дело такое, есть функция main, само собой, и есть функция void music (), void music () {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru