LINUX.ORG.RU

Ну само собой с блокирующими намного проще работать и кода меньше.
Что за вопрос?
Что вам больше нравится разводной ключ или сапог?
В различных ситуациях используются различные подходы.

Stahl ★★☆
()

Естественно, асинхронные. АПВС?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Stahl

Например, из двух библиотек, выполняющих приблизительно одинаковые задачи, одна блокирущая, другая асинхроная, какую бы ты выбрал? Или какой бы способ выбрал для проектирования новой библиотеки?

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

В различных ситуациях используются различные подходы.

+1

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

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

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

Тогда асинхронный вариант без вариантов — всё что связано с сетью может работать от моментально до никогда. Блокировка тут не вариант.

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

Ну само собой с блокирующими намного проще работать и кода меньше.

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

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

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

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

Указатели на функции фигня, вот помнить все 100500 состояний и как и где между ними переключаться - вот что напрягает :) Вместо 2-3 блокирующих вызовов последовательно в одной функции

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

а ещё в POSIX нет изкоробочного асинхронного DNS резолвинга, хнык-хнык

Harald ★★★★★
() автор топика

Мне нравится CSP. Коллбэки должны умереть вместе с node.js

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

Ну само собой с блокирующими намного проще работать и кода меньше.
Что за вопрос?
Что вам больше нравится разводной ключ или сапог?
В различных ситуациях используются различные подходы.

Внезапно, ппкс

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

Что значит нравятся или нет? Асинхронность это чуть-ли не единственный способ решения событийных-задач. Хотя есть варианты типа паттерн наблюдатель или модели акторов, почтовые ящики...

Это примерно как обработчики в jquery - почти все асинхронны. Но API асинхронное это как-то не очень стыкуется. Да и у асинхронности не все так гладко, но блокировать систему это не выход. Если надо блокировать, то лучше сделать это явно, если это возможно. Хотя при явной блокировке полезут другие проблемы... Асинхронность меньшее зло. Блокировка возможна, если это действительно необходимо.

Однозначного решения нет. Да и быть не может. Может в некоторых случаях лучше модуль ядра?

anonymous
()

Дурной вопрос.

В различных ситуациях используются различные подходы.

Pavval ★★★★★
()

Смотря где и для чего. Если можно достаточно хорошо справиться с блокирующим API, то лучше блокирующий. Хороший пример — API OSS vs API pulseaudio. Первый — няшный и удобный, а второй — страшное тупое говно.

Waterlaz ★★★★★
()
Последнее исправление: Waterlaz (всего исправлений: 1)

libev, libevent

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

Это конечно хорошо, но таймаутов не напасёшся. Добавляя по минутке, таки до часа дойдет.

Веб-сервер имеет 2-3 минуты фабрично.

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

Нет, они полезны, но...

anonymous
()

Какие API вам больше нравятся, блокирующие или асинхронные с коллбэками?

асинхронный, с функцией «отмена!» (или — «прекратить!»), на каждую асинхронную операцию.

коллбэки — не. не очень люблю их. лучше что-то более элегантное

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

ты о чём вообще? почитай как таймаут работае в pthread_cond_timedwait например. там всё „валиться“ аж бегом и как можно быстрее.

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

Обычно состояний не очень много, так что легко и без потери читаемости можно раскидать обработку по функциям-обработчикам событий. Но бывает, что состояний довольно много. Тогда можно запилить простейший конечный автомат в виде таблицы состояний с действиями-переходами.

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

Но не надо вешаться: в большинстве алгоримов до сложных конечных автоматов дело не доходит.

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

pulseaudio

Зря ты так про API, оно вполне себе хорошее, допускающее и асинхронный и блокирующий подходы. С моментом «реализация и есть спецификация» там немного кривовато, но тоже терпимо.

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

Точнее, квадратно-гнездовой!

Советской наукой доказано - квадратно-гнездовое применение асинхронности есть единственное идеологически идеологически правильное (собр.соч.Ленина,т.6,гл.2) средство для выполнения плана следующей пятилетки (прот.зас. XXXI с.КПСС).

Самый наш передовой
Код квадратно-гнездовой!

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

собр.соч.Ленина,т.6,гл.2

Мы сказали, что наше движение, гораздо более широкое и глубокое, чем движение 70-х годов, необходимо воодушевить такою же, как тогда, беззаветной решимостью и энергией. В самом деле, до сих пор, кажется, еще никто не сомневался в том, что сила современного движения — пробуждение масс (и, главным образом, девелоперского пролетариата), а слабость его — недостаток сознательности и инициативности руководителей-стартаперов. Однако в самое последнее время сделано сногсшибательное открытие, грозящее пе­ревернуть все господствовавшие до сих пор взгляды по данному вопросу. Это открытие сделано «Harald'ом», которое, полемизируя с «синхронностью» и «колбеком», не ограничилось од­ними частными возражениями, а попыталось свести «общее разногласие» к более глубокому корню — к «различной оценке сравнительного значения сти­хийного и сознательно «планомерного» элемента». Обвинительный тезис «Harald'а» гласит: «преуменьшение значения объективного или стихийного элемента разви­тия». Мы скажем на это: если бы полемика «синхронности» и «колбека» не дала даже ровно ни­каких других результатов кроме того, что побудила «Harald'а» додуматься до этого «общего разногласия», то и один этот результат дал бы нам большое удовлетворение: до такой степени многозначителен этот тезис, до такой степени ярко освещает он всю суть современных теоретических и политических разногласий между русскими социал-демократами. Вот почему вопрос об отношении сознательности к стихийности представляет гро­мадный общий интерес, и на этом вопросе следует остановиться со всей подробностью.

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

😃😃😃

Даже классик писал:

Ленина Слово всем знакомо! -
«Против синхронности Дуализм»
Код, пролетарий, пиши асинхронно!
Долой капитализм!
1922 год.

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

В первую очередь захватить вокзалы, банки, телеграфы... Обещать крестьянам землю, уничтожить частную собственность...

«“Наш главный враг - это мелкая буржуазия, ее навыки, ее привычки, ее экономическое положение”, “мелкий собственник, мелкий капитал - наш враг”, “мелкие хозяйчики, мелкие собственники помогли пролетариату скинуть помещиков и капиталистов, но дальше, на пути социалистических преобразований, пути с ними у большевиков разные”»

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

вот помнить все 100500 состояний и как и где между ними переключаться - вот что напрягает :)

Используй FSM, а лучше HFSM.

Oxdeadbeef ★★★
()

как бы... это зависит от ситуации! лучше всего сигналы-слоты от Qt или другие подобные механизмы, но если отдельный поток - то блокирующие удобнее мне

I-Love-Microsoft ★★★★★
()

ассинхронные с монадами

AndreyKl ★★★★★
()

евент-дривен

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

попытался по крайней мере

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