Однотупочность андроидского синезуба

Jun 13, 2020 01:43

Я программист. И я привык, что с сетью можно работать асинхронно и в несколько потоков ( Read more... )

просифианальное, killswitch, железо, усрат ахуй, android

Leave a comment

Comments 12

max_andriyahov June 12 2020, 23:59:04 UTC
"Вас много, а я одна!" Почта России стайл

Reply

mike_lambert June 13 2020, 07:27:51 UTC
Только в данном случае "почтовый ящик" прикрутить забыли.

Reply

max_andriyahov June 13 2020, 07:37:57 UTC
Просто он одноразовый. Одно письмо упало, почтальон ящик подмышку и пошел относить.

Reply

mike_lambert June 13 2020, 09:58:24 UTC
Это записка "ушла, вернусь хз когда". Отправитель разворачивается и уходит.

Reply


jr0 June 13 2020, 16:41:07 UTC
То же, вроде, с интернет протоколами. Они примитивны до предела. Использовать их без оснастки нельзя. Но работает, а оснащение можно придумать заново. Например, очередь может иметь сложное устройство или простое, какова цель.

Reply

karpion June 13 2020, 22:58:39 UTC
Протокол IP - простой.
UDP и ICMP - простые.
TCP - сложный.
Telnet - простой.
HTTP, SMTP - сложные.

Reply

jr0 June 14 2020, 12:45:10 UTC
Разбирался с POP3 и SMTP. Они примитивны. Там, конечно, можно получить ответ об отказе пересылки, а вот защит нет никаких вообще, что обескураживает. Защиты - надстройки над этими протоколами. И все-равно никто не мешает через них слать любой мусор.

А, если подумать, то ведь работает. Это же всего-то - линия связи. Дисциплина и правила - общественный договор.

Reply

mike_lambert June 14 2020, 09:10:25 UTC
чо?

Reply


karpion June 13 2020, 23:04:47 UTC
Какой мудило сделал там вообще защёлку? Ладно, не хочешь делать очередь - ну так сделай функцию "отправить данные", которая возвращает удачу при возможности отправить или блокирует поток до тех пор, пока не будет возможность отправить. Поскольку потоков конечное количество - то все будут обслужены.

А вот с чтением тут засада:
Допустим, в адаптере есть данные для первого потока (ответ на запрос первого потока). Откуда драйвер знает, какому из потоков отдать этот ответ?

Что-то у меня ощущение, что Bluetooth предполагает общение строго одного потока с одним устройством, и никак иначе.

Reply

mike_lambert June 14 2020, 09:13:18 UTC
> сделай функцию "отправить данные", которая возвращает удачу при возможности отправить или блокирует поток до тех пор, пока не будет возможность отправить.
Так для этого защелка/синхронизатор и нужна.

>Допустим, в адаптере есть данные для первого потока (ответ на запрос первого потока). Откуда драйвер знает, какому из потоков отдать этот ответ?
Там немножко не так. Все вызовы синхронные, поэтому с принадлежностью чтения-записи нету. Когда идет подписка на уведомления - сохраняется какие уведомления куда коллбэчить.

>ощущение, что Bluetooth предполагает общение строго одного потока с одним устройством
Нет, это BLE, он многоточечный и асинхронный.

Reply


Leave a comment

Up