[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: rettifica (was Re: un server web LEGGERO... quale?)



On Thu, Jul 11, 2002 at 02:25:10PM +0200, /dev/null wrote:
> > On Thu, Jul 11, 2002 at 11:54:13AM +0200, walter valenti wrote:
> > > Diciamo che puoi avere due approcci diversi per le connesioni:
> > > 
> > > Il caso più semplice è un solo processo che gestisce la singola connessione.
> > > Il questo caso un server è in grado di gestire una sola connessione alla volta.
> > > 
> > > Il secondo caso più complesso ma più utile, è quello del server concorrente: il
> > > server quando viene lanciata forka in in numero definito di figli, in questo
> > > modo potra servire contemporaneamente più connessioni.
> > 
> > Oppure con un server concorrente, gestire un thread (non processo) per
> > client. Oppure, altra tecnica, e` quella del preforked server,
> > che in sostanza forka un certo numero di figli alla partenza,
> > risparmiandosi il costo della fork al momento della richiesta di
> > un client. Oppure quella del prethreaded.
> Ma che dite?
> Non e` *assolutamente* vero che i server single-threaded gestiscano una
> sola connessione alla volta!

Si` ma, single-thread e` una cosa diversa da single-process.
Tirando ad indovinare quel server *potrebbe* fare una roba del
genere...

    #include <pthread.h>
    
    ...
    for( ; ; ) {
            ...
            fd = accept(...);
            
            pthread_create(&thread_id, NULL, &gestiamoci_la_connessione, fd);
    }

il processo e` uno solo, i thread tanti

Difatti...
> Basta provare:
> $ ps -ef | grep h\\ttpd
> www-data 27032     1  0 14:15 ?        00:00:00 /usr/sbin/thttpd -C /etc/thttpd/thttpd.conf -i /var/run/thttpd.pid
> $ netstat -na | grep :80
> tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
> tcp        0      0 ip.del.ser.ver:80           ip.di.un.client:33333       ESTABLISHED
> tcp        0      0 ip.del.ser.ver:80           ip.di.un.client:33332       ESTABLISHED

PS Spero di non aver scritto troppe boiate

-Roberto


-- 
To UNSUBSCRIBE, email to debian-italian-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: