Newsgroup: it.comp.lang.c++
Titolo: Programmazione Concorrente

Buongiorno a tutti.
Ieri nel progettare una classe ad un certo punto mi sono reso conto di aver
bisogno di un altro processo in concorrenza a quello principale, ma
guardando sul mio libro , non ho trovato nulla riguardo il multithreading e
sono rimasto un po' stupito... il C++ č simile al Java,ma il java permette
di fare cose del genere, possibile che nello standard del C++ non vi sia
nulla ?
Dipende quindi dal OS usato ( ad esempio in linux ho pensato si possa usare
qualcosa tipo system() o fork() ecc... ) ?
Grazie per una eventuale risposta.
ciao

 di fare cose del genere
Java č per chi vuole avere sempre la pappa pronta...
-- 
Luc.

 qualcosa tipo system() o fork() ecc... ) ?
esattamente. Lo standard non dice nulla al riguardo, quindi devi fare
riferimento alle specifiche del sistema operativo per il quale andrai a
sviluppare. Dai comunque un occhiata alla libreria boost e ACE, queste
tentanto di fornire un'interfaccia comune per le problematiche piů tipiche
nell'ambito (thread, mutex, etc.)...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Java è per chi vuole avere sempre la pappa pronta...
io vorrei averla, purtroppo mi tocca usare il C++. :-)


 Java è per chi vuole avere sempre la pappa pronta...
No, e' per chi e' indeciso se la vuole o no. Chi vuole la pappa pronta
usa Python. :-)
Ciao,
Nicola
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 usa Python. :-)
Ed è costretto ad indentare (o meglio, a stare attentissimo 
all'indentazione)....
8-PPP
-- 
Luc.

 nell'ambito (thread, mutex, etc.)...
Mi potresti dire dove dove si possono prendere queste librerie ? Ma vanno
bene per qualsiasi OS ( per me adesso va bene anche solo linux) ?
ciao

 Ieri nel progettare una classe
Nello specifico sto provando a fare un oggetto cronometro e l'unico problema
è proprio il cercare di fermare l'incremento del tempo....secondo voi è
possibile farlo in qualche modo con un singolo processo ?
a me è venuto in mente di fare la richiesta di input ad ogni iterazione e se
passa una frazione di secondo ( magari calcolata con time() ) continua ad
incrementare i secondi.... è un po' macchinosa...e forse nemmeno giusta nè
implementabile...voi come fareste ?
ri-ciao

 ciao
Prova a guardare qui:
http://debianlinux.net/c++.html
Ciao :-)

 bene per qualsiasi OS ( per me adesso va bene anche solo linux) ?
per qualsiasi OS non credo, ma per buona parte sě... 
http://www.boost.org
http://www.cs.wustl.edu/~schmidt/ACE.html
comunque perdevi meno tempo a scrivere il post che non ad aprire google e
cercartelo! 5 minuti dietro la lavagna... 



Usa i pthreads, sono standard (posix):
http://dis.cs.umass.edu/~wagner/threads_html/tutorial.html

"Raziel" <raz...@soul.reaver> ha scritto nel messaggio
news:10383935...@aragorn.postel.it...

Io uso la SuSe 8.1 , va bene lo stesso? Dall'URL presumo sia per debian.
Controllo stasera cmq e grazie. :)

 cercartelo! 5 minuti dietro la lavagna...
Se fossi stato a casa forse si! Il problema č che sono al lavoro e non posso
connettermi per troppo tempo e leggo i post off-line :PP
Su quei siti ci andrň stasera , grazie tante!

 all'indentazione)....
geek? attentissimo?
ciao

 processo ?
bah, io farei una cosa del genere
#include <ctime>
#include <iostream>
#include <unistd.h> // solo per la sleep
using namespace std;
class Timer {
  time_t start_;
  time_t stop_;
  bool running;
 
public:
 
  Timer(): start_(0), stop_(0), running(false){}
  void start() { 
    time(&start_);
    running = true;
  }
  void stop() {
    time(&stop_);
    running = false;
  }
  void print() {
    if (running) {
      time_t now;
      time(&now);
      cout << difftime(now, start_) << " (running)" << endl;
    } else 
      cout << difftime(stop_, start_) << " (stopped)" << endl;
  }
  void reset() { start_ = 0; stop_ = 0; running = false; }
};
int main(){
  Timer clock;
 
  clock.start();
  for (int i = 0; i < 10; ++i){
    sleep(1);
    clock.print();
  }
  clock.stop();
  clock.print();
  sleep(1);
  clock.print();
  sleep(1);
  clock.reset();
  sleep(1);
  clock.print();
 
  return 0;  
}