Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
Abbiamo assemblato e provato la Fiido Nomads Pro, evoluzione del modello da trekking già presente nella gamma, che migliora in tutto, soprattutto grazie al motore centrale, fluido e potente. Ottima app, costruzione solida e prezzo ok completano il quadro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-01-2009, 18:24   #1
Ricky
Senior Member
 
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
[c++] eseguire un metodo in un thread

Ciao a tutti, vorrei eseguire un metodo in un thread differente. Mi spiego:

class SomeClass{

public:

void metodoThread();
void avviaThread();
}

void SomeClass::metodoThread(){
//do something
//may be calling other methods (with mutex ect ect)
}
void SomeClass::avviaThread(){

thread = funzionechestocercando(metodoThread);

}


ho provato con i pthread... ma mi da casini. Sono riuscito a far partire un metodo statico, ma poi da questo metodo non riesco a chiamare altri metodi...

qualcuno ha fatto qualcosa del genere?
sto provando a vedere un pò le api di Boost ma senza grandi risultati...

grazie anticipate!
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300...
Ricky è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2009, 19:35   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Con i pthread puoi far partire un metodo statico, però passando come parametro al metodo statico (il 4° argomento di pthread_create è l'argomento che viene passato al metodo statico sotto forma di void *) il puntatore ad un'istanza della classe, allora puoi far eseguire qualsiasi metodo della classe.

Ad esempio:
Codice:
class AbstractThread
{


public:
   virtual void * run() = 0;
   
   static void runner(void * concreteThreadInstance)
   {
      pthread_exit(((AbstractThread *)concreteThreadInstance)->run());
   }
};

class MyThread: public AbstractThread
{
public:
   MyThread();

   virtual void * run()
   {
       doSomething();
       return NULL;
   }
};

MyThread myThread;
int ret = pthread_create(pthread, NULL, AbstractThread::runner, (void *)myThread);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2009, 20:34   #3
Ricky
Senior Member
 
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
gentilissimo! grazie.

Posso avviare nel costruttore un thread che in realtà è un metodo?.....la vedo un pò sporchina....però vorrei poter accedere ad altri metodi della classe stessa e fare una sorta di trigger, sempre tutto sincronizzato ect...come la vedi?
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300...
Ricky è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2009, 20:54   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sinceramente nel costruttore la cosa la vedo un po' male...in un altro metodo puoi farlo sicuramente ed è anche un'ottima organizzazione per un thread.
Codice:
class AbstractThread
{
   virtual void * run() = 0;

public:
   static void runner(void * concreteThreadInstance)
   {
      pthread_exit(((AbstractThread *)concreteThreadInstance)->run());
   }
   
   virtual void start()
   {
      //qui richiami la pthread_create passando this come argomento
   }
};

class MyThread: public AbstractThread
{
   virtual void * run()
   {
       doSomething();
       return NULL;
   }

public:
   MyThread();
};

Ultima modifica di cionci : 18-01-2009 alle 00:34.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2009, 00:34   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Avevo fatto un errore nel posizionare start
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2009, 20:41   #6
Ricky
Senior Member
 
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
grazie grazie grazie!
sei stato veramente gentilissimo. Alla prossima!!
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300...
Ricky è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2009, 01:09   #7
Ricky
Senior Member
 
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
per tutti quelli che volessere utilizzare queste info c'è un picolissimo errore che cmq non sminuisce il grandissimo aiuto..
Codice:
   static void runner(void * concreteThreadInstance)
        =>
   static void *runner(void * concreteThreadInstance)
saluti e grazie di nuovo
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300...
Ricky è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2009, 10:34   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Giusto
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
MSI PRO MAX: QD-OLED ultrawide per lavorare, creare e giocare MSI PRO MAX: QD-OLED ultrawide per lavorare, cre...
Microsoft interrompe il supporto a Offic...
Musk stacca la spina a Kiev? Cosa &egrav...
No, non è Tatooine: ma 70 Ophiuchi potre...
Con Hisense PX4-Pro la vera esperienza d...
Anthropic avverte: i worm AI decentraliz...
La Svezia riscopre il contante: pagament...
Mercato smartphone: vendite in calo del ...
NASA Perseverance stabilisce un nuovo re...
Frontech chiude il terzo ciclo di accele...
70mai A900 e A900 Ultra in prova: le nuo...
Ninja CRISPi a 99,99€ su Amazon: la frig...
Amazon supera il milione di robot nei ma...
Microsoft ufficializza Xbox Labs, il nuo...
Perché prendo sul serio il paper ...
Apple Watch SE 3 a 219€ su Amazon: displ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v