Originariamente inviato da Sevenarth
Potresti farmi un esempio su come trasferire dati da thread a thread?
In una applicazione che usa i socket, un thread eseguirebbe una funzione di scrittura in un socket e l'altro thread eseguirebbe una funzione di lettura dal socket..
Ti posto un esempio di uso dei pthread che ho ripescato dall' HD portatile , ma scriverti un programma multithread d'esempio che usa i socket, ora come ora non he ho il tempo.
codice:
#include<stdio.h>
#include<unistd.h>
#include<pthread.h>

#define MAX_THREADS 5

void mod_var(int *a)
{
   *a += 5;
 
   pthread_exit(0);
}

void start(pthread_t threads[], int *a)
{
   int i;
   pthread_attr_t attr;
 
   for(i = 0; i < MAX_THREADS; i++)
   {
      threads[i] = pthread_attr_init(&attr);
  		
      if((pthread_create(&threads[i], &attr, (void *)mod_var, (void *)a)) == 0)
         printf("Thread %d executed: a = %d\n", i, *a);
  		
      pthread_join(threads[i], 0);
   }
}

int main(void)
{
   int a = 0;
   pthread_t threads[MAX_THREADS];

   printf("\n(in main) a = %d\n\n", a); 
   start(threads, &a);
   printf("\n(in main) a = %d\n\n", a);
 
   return 0;
}
Spero che possa aiutarti a capire.
Se hai bisogno di consigli su documentazioni e libri chiedi pure