Страница 4 из 4

Добавлено: 12 янв 2007, 16:11
sobomax
Marmot писал(а):
sobomax писал(а):Код который блокирует запускается в отдельном worker триде. Дальше объяснять или уже понятно?
Да, отстал я похоже от жизни, вот что оказывается нынче nonblocking-ом называют :)
А я вегда думал, что это когда весь IO делают в одном потоке, как например Squid или Postgresql во многич случаях...
Хм, по моему оно всегда так называлось. Non-blocking intefrace отличается от blocking тем что он возвращает управление в вызывающий код сразу же а не ждет завершения операции которая может занять неопределенно долгое время (network IO например).

-Maxim

Добавлено: 12 янв 2007, 16:36
Marmot
sobomax писал(а): Хм, по моему оно всегда так называлось. Non-blocking intefrace отличается от blocking тем что он возвращает управление в вызывающий код сразу же а не ждет завершения операции которая может занять неопределенно долгое время (network IO например).
Хмм, тут похоже проблема терминологии
Мне всегда казалосЬ, что non-blocking операции не могут "занять неопределенно долгое время", сколько смогли, столько и прочитали/протолкнули, остальное доделаем в следующий раз...
Или в случае IO in multithread environment теперь тоже non-blocking называют??? :oops: :roll:

Добавлено: 12 янв 2007, 16:44
sobomax
Marmot писал(а):
sobomax писал(а): Хм, по моему оно всегда так называлось. Non-blocking intefrace отличается от blocking тем что он возвращает управление в вызывающий код сразу же а не ждет завершения операции которая может занять неопределенно долгое время (network IO например).
Хмм, тут похоже проблема терминологии
Мне всегда казалосЬ, что non-blocking операции не могут "занять неопределенно долгое время", сколько смогли, столько и прочитали/протолкнули, остальное доделаем в следующий раз...
Или в случае IO in multithread environment теперь тоже non-blocking называют??? :oops: :roll:
Правильно non-blocking операция не может занять "неопределенно долгое время", об этом и речь. А вот blocking вполне может. В случае сетевого IO с использованием stream protocol любая операция записи может занять неопределенное время потому что надо получить подтверждение от принимающей стороны, сделать ретрансмиты итд.

При чем здесь "IO in multithread environment"?

Я говорю о том что любой blocking API (IO, whatever) можно превратить в non-blocking вызовом этого API в отдельном worker thread и написанием небольшой обвязки.

-Maxim

Добавлено: 12 янв 2007, 16:52
ajkj3em
жжошь :) marmot кстати дурака валяет, если я правильно понимаю ..

Добавлено: 12 янв 2007, 18:00
Marmot
ajkj3em писал(а):жжошь :) marmot кстати дурака валяет, если я правильно понимаю ..
Не, ну а кто такое название топику-то дал? :lol: :roll: :oops:

Добавлено: 14 янв 2007, 21:53
i_van
sobomax писал(а): Чай в 21 веке живем - тулзов разных для profiling навалом вокруг. Чего там понимать-то не rocket science поди?
-Maxim
Про tools and profilers поподробнее pls. Кто чем пользуется для поиска deadlocks? Особенно интересуют интегрируемые с Visual C++ и недорогие.