The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"низкоприоритетный thread"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"низкоприоритетный thread"  
Сообщение от AMDmi3 on 08-Май-06, 02:39 
Такая ситуация: есть 2 потока, в одном рисуется 3d графика, в другом читаются данные с диска (неблокирующий ввод/вывод не спасет - при чтении с cdrom, например, значительную задержку даст даже stat - поэтому читать и рисовать в одном потоке неприемлимо (или я не прав?)). Проблема в том, что читающий тред работает слишком долго перед тем, как уступить рисующему:

1147039763.776045 THREAD1: RENDERING FRAME
1147039763.778054 THREAD2: Done loading file
1147039763.778153 THREAD2: Loading file...
1147039763.782842 THREAD2: Done loading file
1147039763.782903 THREAD2: Loading file
1147039763.788678 THREAD2: Done loading file
1147039763.788739 THREAD2: Loading file
1147039763.793377 THREAD1: RENDERING FRAME

Из-за этих задержек изображение дергается. Пробовал pthread_setschedparam чтобы задать читающему потоку приоритет 0. Кажется, стало лучше, но ненамного. Что еще можно сделать?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "низкоприоритетный thread"  
Сообщение от guest (??) on 08-Май-06, 22:41 
> Что еще можно сделать?

не читать с cdrom'а. cdrom имеет весьма убогий интерфейс, не предназначенный для async чтения, и тормозить будет по-любому. Ну разве что привод купить покруче, и болванки для записи брать не первые попавшиеся.

хотя можно ещё ограничить скорость чтения с цдрома.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "низкоприоритетный thread"  
Сообщение от AMDmi3 on 10-Май-06, 19:12 
>> Что еще можно сделать?
>не читать с cdrom'а.
читать надо.

Собственно проблему практически решил - использую маленькие read'ы и часто вызываю sched_yield(). Правда, долгий stat() пока не тестировал.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру