Alex_87_xelA
24-11-2008, 10:06
scusate l'ignoranza... so "diciamo" in generale che un programma mandato in esecuzione è un PROCESSO, e questo processo chiama come thread principale il main del programma in esecuzione.
vorrei fare qualche piccola domanda.
1) cos' è effettivamente un thread ?
2) perchè viene utilizzato ?
3) conviene in alcuni casi il suo utilizzo o è meglio non usarli ?
è solo una mia curiosità generale.
GRAZIE in anticipo delle vostre risposte !!!
{
NB : parlo dei thread realizzati utilizzando alcune funzioni come queste :
CreateThread(......);
ExitThread(.....);
SuspendThread(.....);
ResumeThread(.....);
GetCurrentThread(.....);
.....
.....
}
//Questo esempio mostra come far fare due cose contemporaneamente ad un programma: spostare a casaccio il cursore del mouse e stampare numeri all'infinito:
//----------------------
#include <windows.h>
#include <iostream.h>
#include <stdlib.h>
DWORD funz1 (LPDWORD lpdwParam) {
for (int i = 0; ; i++)
{
//adattare i due numeri alla vostra risoluzione
int x = 0 + rand() % 1024;
int y = 0 + rand() % 768;
SetCursorPos(x, y);
}
return 0;
}
int main () {
DWORD dwThreadId, dwThrdParam = 1;
cout << "Ciao, mentre stampo all'infinito i numeri l'altro\\nthread muove a caso il cursore del mouse\\n";
HANDLE thread = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE) funz1, &dwThrdParam, 0, &dwThreadId);
for (int i = 0; ; i++)
{
cout << "Ciclo numero " << i << " premere CTRL-C per terminare"<<endl;
}
return 0;
}
//--------------------------------
questo è un esempio che ho trovato !!!
vorrei fare qualche piccola domanda.
1) cos' è effettivamente un thread ?
2) perchè viene utilizzato ?
3) conviene in alcuni casi il suo utilizzo o è meglio non usarli ?
è solo una mia curiosità generale.
GRAZIE in anticipo delle vostre risposte !!!
{
NB : parlo dei thread realizzati utilizzando alcune funzioni come queste :
CreateThread(......);
ExitThread(.....);
SuspendThread(.....);
ResumeThread(.....);
GetCurrentThread(.....);
.....
.....
}
//Questo esempio mostra come far fare due cose contemporaneamente ad un programma: spostare a casaccio il cursore del mouse e stampare numeri all'infinito:
//----------------------
#include <windows.h>
#include <iostream.h>
#include <stdlib.h>
DWORD funz1 (LPDWORD lpdwParam) {
for (int i = 0; ; i++)
{
//adattare i due numeri alla vostra risoluzione
int x = 0 + rand() % 1024;
int y = 0 + rand() % 768;
SetCursorPos(x, y);
}
return 0;
}
int main () {
DWORD dwThreadId, dwThrdParam = 1;
cout << "Ciao, mentre stampo all'infinito i numeri l'altro\\nthread muove a caso il cursore del mouse\\n";
HANDLE thread = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE) funz1, &dwThrdParam, 0, &dwThreadId);
for (int i = 0; ; i++)
{
cout << "Ciclo numero " << i << " premere CTRL-C per terminare"<<endl;
}
return 0;
}
//--------------------------------
questo è un esempio che ho trovato !!!