Похожие чаты

Hello .. I want a favour from you... I want

to capture recording into a byte[] and write it to the output streams of all the connected sockets. the thing is that as soon as i capture the audio i need to write it to the sockets. I create client handler which is a thread that keeps writing to the respective socket. I tried capturing the audio from a separate thread and use the byte[] accross all the client handler threads but i can only hear shutter like noise. Although when i capture audio from the respective client thread it gives me clear audio but this won't be a feasible solution. So, my question is should i use a thread manager or I must be doing something wrong in the scenario i said above?

2 ответов

14 просмотров

Seems to be a visibility issue, your reader threads see byte[] in stale/inconsistent state. There's really a lot to talk about, I can suggest the classics: "Java concurrency in practice" with trains on the cover. Worth reading, maybe the second "must read" for professional after Bloch's work. You can fix it by making it synchronized, by making sure that the shared state (all the byte[] array) is always accessed while holding a lock. For a scenario where there's one writer thread and many readers you can benefit in reducing lock contention by using ReentrantReadWriteLock.

And one more thing I'm also thinking about. Is this audio streaming (capture small piece, send to clients, capture another one, and so on)? Or two distinct phases of 1) fully read all stream, 2) send it to client ?

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
Hi. Do we have a raid bot? Why nobody doing raids on X? Even RH mentioned this and nobody paying attention...whats the channel for hex memes? If mods cant run raids just insta...
H
31
Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
блеать, почему так?? где в роутере это исправляется?
Арсен Маньяков 🇦🇲
16
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
🌊 Ocean Nodes Dashboard Update 🚀 Hey, Oceaners! First off, a massive round of applause 👏to all of you for the amazing engagement since we launched Ocean Nodes. In just a few ...
KreigDK | Never DM first🌊
3
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
люди, которые используют flameshot, к вам вопрос. Можно-ли поставить хоткей на создание скриншота? В программе есть отдел "горячие клавиши", но там все для редактирования, скр...
ThunDer104
11
Карта сайта