|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12919
|
Non c'entra niente, è una questione di multi-tasking che si può fare anche su un processore single core e del resto è quello che s'è sempre fatto per poter far sembrare che le applicazioni girassero "contemporaneamente", ad esempio tramite una tecnica a divisione di quanti di tempo (in pratica ad ogni thread a turno viene assegnato un certo tempo di esecuzione da parte dello scheduler del SO).
|
|
|
|
|
|
#22 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
|
|
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Quote:
|
|
|
|
|
|
|
#24 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Stai parlando di un thread pool?
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#25 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Buttiamola così!
Volendo utilizzare i thread! Non posso utilizzare una unica dichiarazione per tutti i thread di gestione vero? ad esempio (molto molto approssimato come esempio) Codice:
pthread_t unico;
while(1){
socket_client = accept(socket_benvenuto, struttura, ecc......);
pthread_create(&unico, NULL, thread_di_gestione, (void*)&socket_client);
}
|
|
|
|
|
|
#26 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Allora raga riesumo il thread perchè mi è sorto un nuovo problema...
Ho deciso di reindirizzare lo stderr su un file di log... secondo me sta cosa al prof piace! Il problema principale è: se l'apertura/creazione del file di log fallisce, come mi devo comportare? 1) Devo terminare l'esecuzione del programma? 2) Gestire l'errore in modo che il file venga comunque creato? 3) Oppure continuare l'esecuzione e stampare a video i vari errori? Avevo innanzitutto optato per quest'ultima opzione, ma la trovavo scomoda in quanto per scrivere su file utilizzavo un mutex, che non sarebbe più stato necessario in caso di stampa a video! Forse mi conviene più puntare sulla seconda... Cosa ne pensate? |
|
|
|
|
|
#27 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12919
|
Quote:
|
|
|
|
|
|
|
#28 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Quindi se mi fallisce l'apertura del mio file di log devo crearne un altro nella cartella /tmp e avvisare magari di questo evento a video....
|
|
|
|
|
|
#29 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Utilizzando un file di log in un server multithread devo per forza usare un semaforo mutex, altrimenti potrei avere due thread in concorrenza che scrivono sullo stesso canale... ad esempio
Codice:
if(qualcosa == -1){
wait();
perror("Si è verificato un errore");
signal();
}
eventualmente continuo
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:47.




















