Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C++] Multithread

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    59

    Multithread C++

    Ciao a tutti, devo scrivere un codice C++ (sarà il processo A) che faccia questo:

    1) sta in ascolto su una porta socket locale xxx (comunica con altri processi..)

    2) quando riceve una richiesta sulla porta xxx deve avviare un thread che si prenda carico del compito da svolgere, lo faccia e, quando finito, invii un dato ad un altro processo B su una porta locale yyy.

    Il mio problema è questo: devo prevedere un pool di threads? dato che il main può accettare più richieste contemporanee dovrà poter avviare più thread serventi contemporanei, i quali una volta finito il loro compito cesseranno la propria esecuzione. Come si fa questo in C++?
    Riporto un semplice codice per singolo thread:

    #include <pthread.h>

    void *faiqualcosa( void *ptr );

    main()
    {
    pthread_t thread1;
    int iret1;
    while (true){
    //sta in ascolto su porta xxx da cui riceve 'message'
    //quando arriva una richiesta avvio il thread........

    iret1 = pthread_create( &thread1, NULL, faiqualcosa,(void*) message);
    exit(0);
    }



    void *faiqualcosa( void *ptr )
    {
    //codice per inviare dati via socket su porta yyy
    }




    Secondo voi questo codice funziona?
    Se ad es arriva la richiesta1, viene creato il primo thread, e prima che il thread abbia finito arrivi la richiesta2 vado a istanziare un nuovo thread sulla variabile iret1 .....Secondo voi come si fà insomma????????

    Grazie a tutti.
    ciao da franzxx

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Va piu' o meno bene ma l'istruzione

    exit(0)

    non devi inserirla perche' chiuderebbe il main ...

    In piu', non devi usare una variabile semplice (thread1) ma un array se vuoi gestire piu' thread ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    59
    Grazie, a parte l'exit cosa intendi di preciso per array? anch'io avevo in mente qualcosa del genere, mi potresti scrivere due righe di codice sulla base del mio per farmi capire?
    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    59
    Metto qui anche un'altra domandina a riguardo.
    Se mi faccio un eseguibile in C++, e voglio che esso venga lanciato da un programma java (che rappresenta il main del programma) come faccio sotto linux?
    Vorrei poter dire da Java :
    ./eseguibilecpp

    come si fa?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.