Основная функция моей программы: создание количества счетчиков (0), создание количества инструкций на потоки, создание инструкций struct, которые содержат счетчик *, повторений и work_fn (увеличение, уменьшение и т. Д.).
Программа построит всю динамическую структуру (уже закодирована)
затем порождайте темы и присоединяйтесь. Одна нить может иметь более одной инструкции.
static void* worker_thread(void *arg){
long long *n;
pthread_mutex_lock( &lock1 );
n = (long long *) arg;
printf("Testing: %lld.\n", n);
pthread_mutex_unlock( &lock1 );
return NULL;
}
//nthreads is the total number of threads
for(int i=0; i < nthreads ; i++){
pthread_create( &thread_id[i], NULL, worker_thread, &i); //Problem
}
for(int i=0; i < nthreads ; i++){
pthread_join( thread_id[i], NULL);
}
Я пытаюсь протестировать функцию потока, сначала создать количество потоков, а затем присоединиться к ним.
Но я не могу передать текущий номер потока [i] в моем случае функции рабочего потока.