Данная программа должна выводить в консоль "Hello World" "2007"
Создал структуру для передачи аргументов в потоковую функцию. Здесь вроде бы все нормально. Не вижу очевидных препятствий выводу текста в консоль, но, тем не менее это не происходит. Буду признателен, если укажите на ошибку или недочет. Буду рад любому совету или пояснению.
Кроме того, я не особо понимаю абстракцию потока. С одной стороны, мне понятно, что это инструмент, позволяющий повысить производительность процессора. Потоки позволяют в рамках одной программы выполнять одновременно несколько действий, используя при этом общие данные. В Linux потоки выполняются так же, как и процессы, т. е. независимо. Вопрос: зачем в одной и той же программе выполнять несколько действий посредтсвом потоков, когда по сути программа может делать это все сама без помощи потоков.В чем их реальный, приклданой смысл потоков??? каким имеено образом они работают и в каких отношениях состоят с процессом? Имею представление о стандартных потоках вывода, ввода и ошибки(stdout, stdin, stderr), но, не понимаю , одно ли это и то же, что я создаю поток с помощью поточной функции и перенаправляю потоки с помощью(> >>, < <<).Разные ли это потоки ??? Еще раз: буду рад любому объяснению. Заранее спасибо за ответ.
#include <stdio.h>
#include <pthread.h>
struct thread_arg
{
char * str;
int num;
};
void * function (void * arg)
{
struct thread_arg targ = *(struct thread_arg *) arg;
fprintf (stderr, "str=%s\n", targ.str);
fprintf (stderr, "num=%d\n", targ.num);
return NULL;
}
int main (void)
{
pthread_t thread;
int result;
struct thread_arg targ;
targ.str = "Hello World";
targ.num = 2007;
result = pthread_create (&thread, NULL, &function, &targ);
return 0;
}