Синхронна или асинхронна връзка

Синхронна или асинхронна връзка

Хората, аз всъщност правят програмиране в базата данни, но е трябвало да бъде и аз SNPP-serverochek направен малък. Същността на такава, че SNPP протокол е нещо като SMTP (т.е. командния отговор-отбор на сървъра и т.н.). Направих го чрез ClientSocket (SNPP-сървър се намира в друг офис и аз не ми пука). Всички действия, аз изпълняват след събитие onClientSocketRead на (и всичко това се прави, асинхронно, т.е. nonBlocking). Аз си мислех (всичко работи добре), ако аз го направих асинхронно добре ли е? Може синхронно по-добре? Обяснете в кои случаи кой режим се използва (или синхрон ASINH)? Е, аз съм Lamer (все още) в тази област.

Асинхронен режим е добър проста реализация на софтуер, и се използва, когато клиент и сървър за обмен на кратки съобщения в "въпрос - vremya_ozhidaniya_otveta - отговор", където vremya_ozhidaniya_otveta клони към нула. В този режим сървърът обработва заявките на своите клиенти постоянно в osn.potoke и. ако vremya_ozhidaniya_otveta допустимо малко забавяне kolucheniem отговорите от сървъра за всеки от клиентите е относително малък.

Синхронен режим (в този случай TServerSocket - режим нишката блокиране, т.е. използване многонишкови WinsockAPI блокиране на повиквания към нивото на потока) е добре с това, че сървърът за обработка kl.zaprosov едновременно паралелно в различни potokah, всеки от които е с единично единствен kl.soedineniya.
На първо място, този режим е необходимо, когато vremya_ozhidaniya_otveta значително (например, клиентът поиска ND сървъра, формирането на който сървърът изпълнява заявката към базата данни и fakt.vremya на заявката сравнително голям). Ако сървърът да се справят с такива "подмамени" искания последователно, клиентът за клиента, в един единствен код поток, а след това с настоящите клиенти Други клиенти също са в очакване на сървъра, за да обслужи заявката, и всичко това идва да ги обслужва.
Между другото, всички текущи търговски SQL сървъри се многонишков (SuperServer технология) и лечение kl.zaprosov те извършва паралелно, в различни теми, употреба, включително и са склонни да блокира транспортните API-разговори и други нива

Т.е. за клиентите на SMTP или POP да използвате без блокиране на връзката? И да кажем, че ако има страна на клиент, който изпраща, както казвате, отрупана заявка, тя също може да изпрати заявка и след това prohlozhdatsya, и да кажа, ако поставите таймер за една минута, в една минута, ако не дойде отговорът, че близо контакта. Аз го твърдят от страна на клиента, че има смисъл да се използва заключване връзка?

И с TZ клиентът има смисъл да го използвате в многонишков транспорт, когато е налице едновременен достъп до повече от един сървър.

И още един. Режим "Блокиране" и "многонишковите" режим - неща, по принцип, различен, но в същото време са тясно свързани с настоящето, професор, но направи, разпределени inf.sistemah.

Памет: 0.73 MB
Време: 0.04 в