LINUX.ORG.RU

[threads] Данные в потоках


0

0

Доброго времени суток.

На этот раз вопрос скорее теоритический, из разряда «как сделать красивее, а не как всегда».

Задача:

Есть 4 канала по которым мы получаем видео поток (пока что это ip камера, позже это будет сигнал от преобразователя). Из этих 4 кадров мы делаем один в виде полиэкрана и отправляем его клиентам, клиенты пока что пишу я, потом это будет еще один преобразователь в аналоговый сигнал.

Как я это вижу - 4 потока(thread), по одному на видео поток. Еще один поток для создания полиэкрана. Он-то и будет отдавать основной функции полиэкранный кард идущий клиентам.

Встает вопрос - как сделать обмен данными между потоками? и надо ли в такой ситуации вообще делать по отдельному потоку на каждый видео сигнал?

Сейчас мне все кажется слишком перегруженным и не очевидным - я передаю в поток создания полиэкрана указатели на классы по приему видео (каждый из них в своем потоке) и указаатель на класс для полиэкранного видео, с которым работаю из основной функции.

И последний вопрос - поскольку было решено начать делать с нуля встает вопрос о языке реализации - С или С++. Так как С я лучше знаю, но С++ (с использованием boost) вроде как больше пригодится при смене работы.

Спасибо за советы.

> Встает вопрос - как сделать обмен данными между потоками? и надо ли в такой ситуации вообще делать по отдельному потоку на каждый видео сигнал?

Если обработка каждого видеосигнала не зависит от обработки остальных видеосигналов - да, выгодно делать по нити на сигнал.

Сейчас мне все кажется слишком перегруженным и не очевидным - я передаю в поток создания полиэкрана указатели на классы по приему видео (каждый из них в своем потоке) и указаатель на класс для полиэкранного видео

Указатели на классы? O_o Может, таки на объекты?

P.S. как мне хочется убить тех, кто придумал переводить термин «thread» словом «поток», и жестоко наказать тех, кто пользуется этим вариантом перевода.

tailgunner ★★★★★
()

forget about C++. Common Lisp + C is your choice.

anonymous
()

Поток данных - stream

Поток команд - thread

whoami
()

С ip-камер данные можно получать в одном потоке мультиплексированием.

mv ★★★★★
()

Пул потоков - по количеству ядер. Если это там что-нибудь тяжелое выполняется. Если нет, то просто один поток с мультиплексированием.

anonymous
()
Ответ на: комментарий от desruptor

pthread_create(thread, NULL, video_func, this)

Да я не против объектов...

class QueueProcessor {
   void enqueue(InputMessage *);
   OutputMessage *dequeue();
};

:)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>P.S. как мне хочется убить тех, кто придумал переводить термин «thread» словом «поток», и жестоко наказать тех, кто пользуется этим вариантом перевода.

мне интересно знать, как ты собираешься «правильно» переводить на русский термин multithreading.

antony986
()
Ответ на: комментарий от bibi

>multithreading

Ручеёк? Ниточка? Веревочка? Я угадал?

многоручеевость? многониточность? многоверевочность?

antony986
()
Ответ на: комментарий от bibi

> Ручеёк? Ниточка? Веревочка? Я угадал?

Не-а. Но ассоциации с тонкими длинными предметами довольно интересны.

tailgunner ★★★★★
()
Ответ на: комментарий от antony986

> я знаю но не скажу? детский сад

Ну вот смотри: «thread» - «нить», «multi» - «много». Из этого получается слово «многонитевость». И, соответственно, «многонитевое приложение» как перевод «multithreaded applicaton». Видишь, догадаться было нетрудно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

а меня это не беспокоит, в новых словарях thread с ангельского (в компьютерном значении) переводят как поток, в крайнем случае как тред. а ты просто придираешься к мелочам как зануда.

асло, многонитивость звучит и пишется по-уродски

antony986
()
Ответ на: комментарий от tailgunner

Ну вот смотри: «thread» - «нить», «multi» - «много». Из этого получается слово «многонитевость». И, соответственно, «многонитевое приложение» как перевод «multithreaded applicaton». Видишь, догадаться было нетрудно.

Знаешь, я оппоненту готов простить лисп. Я даже на имакс могу, кривя душой, но закрыть глаза. Но за 'многонитевость' - я даже и не знаю.

bibi
()
Ответ на: комментарий от antony986

> в новых словарях thread с ангельского (в компьютерном значении) переводят как поток,

Автора термина - на фонарь, пользователей термина - на исправительные работы.

в крайнем случае как тред

А, это уже стало переводом. Это тебе собака сказала?

многонитивость звучит и пишется по-уродски

Насчет «пишется» - полностью согласен. Ну так попробуй писать правильно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Они (он и собака) не одиноки. В таких тяжелых случаях лучше чесно π^W заимствовать слово.

LamerOk ★★★★★
()
Ответ на: комментарий от tailgunner

>Насчет «пишется» - полностью согласен. Ну так попробуй писать правильно.

многониточность? ибо суффикс -ев употрбляется только в прилагательных

antony986
()
Ответ на: комментарий от antony986

>>> многонитивость звучит и пишется по-уродски

Насчет «пишется» - полностью согласен.

многониточность?

Ну ты хоть с собакой посоветуйся, если в словарь не можешь заглянуть.

tailgunner ★★★★★
()
Ответ на: комментарий от antony986

справедливо будет заметить, что википедия тут не показатель, совсем.
я согласен с tailgunner'ом в том, что нить - гораздо перевод чем поток, однако, будем реалистами, стоит признать, что слово «поток» как перевод термина thread уже закрепился в сознании сотен тысяч айтишников, и тут можно только смириться и сквозь зубы матюкать изначального «изобретателя».

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Какого еще «изобретателя»? «Поток вычислений» - термин старше, чем все посетители лора.

нить - гораздо перевод чем поток


Это еще почему? Почему не «резьба»?

LamerOk ★★★★★
()
Ответ на: комментарий от antony986

Русская Википедия, вопрос по SE... «ну ты понел» (с)

tailgunner ★★★★★
()
Ответ на: комментарий от dOzEr

> многонитевость - хмм... так это же «канат»

А «многопоточность» - это «река». И что?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>P.S. как мне хочется убить тех, кто придумал переводить термин «thread» словом «поток», и жестоко наказать тех, кто пользуется этим вариантом перевода.

просто интересно, а что вас смущает в термине «поток»? Он недостаточно корректно отражает суть явления?

Corey
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.