PDA

Visualizza la versione completa : [C++] Thread


[D]ottor
18-12-2006, 11:55
Ciao a tutti
Sono ai primi passi con il C++
Prima di affrontarlo sotto tutti gli aspetti vorrei sapere se fosse possibile(sicuramente si) creare thread.Lo chiedo perchè non ho trovato documentazione precisa.

Sono agli inizi...ovvio che non partirò dai Thread :)
Però, siccome provengo da Java e in molte applicazioni utilizzo thread, vorrei fare la stessa cosa con il C++ (per programmi da shell, senza grafica ovviamente)...

Vi ringrazio


P.S. Ovviamente su sistemi LINUX :)

oregon
18-12-2006, 12:06
In C++ si possono (ovviamente) creare thread e gestirli.

[D]ottor
18-12-2006, 12:17
si ne ero sicuro anche io.
Info più dettagliate su come utilizzarli?

GRAZIE

UltraBeginner
18-12-2006, 12:35
Mi infilo di straforo in questa discussione, volevo chiedervi come mai ci si puo trovare a creare più (che se non erro sono i processi) thread in un programma...

vi chiedo ciò perchè quando lancio un mio eseguibile e apro task manager, vedo l eseguibile lanciato tra i processi...ma se io dentro il sorgente di quell eseguibile lancio un altro thread il task manager mi farà vedere un altro processo?

scusate l intromissione..... :ciauz: :ciauz:

[D]ottor
18-12-2006, 12:41
Originariamente inviato da UltraBeginner
Mi infilo di straforo in questa discussione, volevo chiedervi come mai ci si puo trovare a creare più (che se non erro sono i processi) thread in un programma...

vi chiedo ciò perchè quando lancio un mio eseguibile e apro task manager, vedo l eseguibile lanciato tra i processi...ma se io dentro il sorgente di quell eseguibile lancio un altro thread il task manager mi farà vedere un altro processo?

scusate l intromissione..... :ciauz: :ciauz:

Bhe se l'applicazione deve fare più cose contemporaneamente vengono utilizzati i Thread....proprio per questo. Essendo processi a se stanti, non bloccano l'esecuzione del thread principale(quello del programma).

UltraBeginner
18-12-2006, 12:59
Originariamente inviato da [D]ottor
Bhe se l'applicazione deve fare più cose contemporaneamente vengono utilizzati i Thread....proprio per questo. Essendo processi a se stanti, non bloccano l'esecuzione del thread principale(quello del programma).

quindi, correggimi se sbaglio, servono a fare il multitasking?
per esempio un thread puo scrivere dei dati su un file mentre un altro si occupa di gestire la grafica dell avanzamento della scrittura con una barra scorrevole visibile all utente (ok e una stupidaggine però era per chiarire :)) :ciauz: :ciauz:

[D]ottor
18-12-2006, 13:01
Originariamente inviato da UltraBeginner
quindi, correggimi se sbaglio, servono a fare il multitasking?
per esempio un thread puo scrivere dei dati su un file mentre un altro si occupa di gestire la grafica dell avanzamento della scrittura con una barra scorrevole visibile all utente (ok e una stupidaggine però era per chiarire :)) :ciauz: :ciauz:

si si, per fare più cose contemporaneamente

oregon
18-12-2006, 13:20
Dato che avevi chiesto solamente se si poteva fare e che non partirai dai thread, non ti ho dato dettagli.

Dato che lavori con Linux (non era poi tanto ovvio ...) puoi usare la

pthread_create

Leggi questo

http://www.die.net/doc/linux/man/man3/pthread_create.3.html

Per Windows usi la

CreateThread

Non fate confusione tra processi e thread. Sono cose diverse.
Se crei un nuovo thread in un processo, NON stai creando un nuovo processo.

Anche sul multitasking ... non ha direttamente a che fare con i threads ma semmai, con i processi e con il tipo di schedulazione dei processi.

[D]ottor
18-12-2006, 13:53
Originariamente inviato da oregon
Dato che avevi chiesto solamente se si poteva fare e che non partirai dai thread, non ti ho dato dettagli.

Dato che lavori con Linux (non era poi tanto ovvio ...) puoi usare la

pthread_create

Leggi questo

http://www.die.net/doc/linux/man/man3/pthread_create.3.html

Per Windows usi la

CreateThread

Non fate confusione tra processi e thread. Sono cose diverse.
Se crei un nuovo thread in un processo, NON stai creando un nuovo processo.

Anche sul multitasking ... non ha direttamente a che fare con i threads ma semmai, con i processi e con il tipo di schedulazione dei processi.


grazie per la dritta...si volevo una guida da seguire per dargli un'occhiata e salvarmela tra i preferiti :D

Poi utilizzo LINUX e voglio programmare su linux :zizi:

comunque non ho capito le ultime cose che hai detto...
se creo un thread in un processo, perchè alla fine non viene creato un nuovo processo?

grazie

Habanero
18-12-2006, 14:02
perchè thread e processi sono due cose piuttosto diverse sia dal punto di vista della programmazione che dal punto di vista della gestione da parte del sistema:
http://en.wikipedia.org/wiki/Thread_%28computer_science%29

Più thread possono coesistere all'interno di uno stesso processo.

Loading