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