PDA

Visualizza la versione completa : [*] Applicazione multithread e sua gestione


xegallo
02-07-2007, 11:37
in windows un'applicazione multithread ovvero stesso PID e piu TID ci sono effettivi vantaggi nell'uso di pi processori oppure il multitasking supplisce bene lo stesso?
In pratica la mia domanda il multicore lavora per processi diversi o anche per thread

andbin
02-07-2007, 11:44
Originariamente inviato da xegallo
in windows un'applicazione multithread ovvero stesso PID e piu TID ci sono effettivi vantaggi nell'uso di pi processori oppure il multitasking supplisce bene lo stesso?
In pratica la mia domanda il multicore lavora per processi diversi o anche per thread Diversi thread dello stesso processo possono benissimo essere eseguiti su core/processori diversi. In genere il S.O. che si occupa di schedulare i thread nel modo e sul processore pi opportuno. In Windows comunque esistono delle funzioni per "forzare" un thread ad andare su un certo core/processore specifico.

xegallo
02-07-2007, 11:54
Originariamente inviato da andbin
Diversi thread dello stesso processo possono benissimo essere eseguiti su core/processori diversi. In genere il S.O. che si occupa di schedulare i thread nel modo e sul processore pi opportuno. In Windows comunque esistono delle funzioni per "forzare" un thread ad andare su un certo core/processore specifico. perfetto quindi se l'OS identifica 2 thread in un processo si occupa lui di farli eseguire alla cpu che ritiene opportuna

kentaromiura
02-07-2007, 12:02
Originariamente inviato da xegallo
perfetto quindi se l'OS identifica 2 thread in un processo si occupa lui di farli eseguire alla cpu che ritiene opportuna
dipende sempre da che livello guardi la cosa, se utilizzi funzioni a basso livello devi gestire tu tutto
ma per il resto il S.O. che si incarica di gestire il tutto

xegallo
02-07-2007, 12:09
Originariamente inviato da kentaromiura
dipende sempre da che livello guardi la cosa, se utilizzi funzioni a basso livello devi gestire tu tutto
ma per il resto il S.O. che si incarica di gestire il tutto il fatto in breve che ho un'applicazione in 2 thread uno si occupa di operazioni IO e l'altro di comunicazioni socket e la logica del programma, in pratica io ho l'esigenza che per un ritardo IO (db, file) non vengano ritardate le comunicazioni socket. Insomma niente di mostruosamente a basso livello ma se i due thread mi girassero "indipendenti" lo gradirei

oregon
02-07-2007, 12:16
I thread gireranno in modo indipendente perche' sono controllati dal sistema operativo (per Windows sicuramente e per i thread kernel per Linux).

Tu non ti devi preoccupare di nulla .

Loading