Добавил:
Yanus
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab 8 (Linux)
.C#include <stdio.h>
#include <pthread.h>
#include <signal.h>
pthread_t tid1, tid2, tid3;
char array_of_symbols [] = "abcdefghijklmopqrstvuwy";
void proc_thread1(void *arg)
{
int k, j;
for (k=0; k<23; k++)
{
printf("\033[%d;24H",k+1);
printf("%d: ");
for (j=0; j<(int)arg; j++)
printf("%c",array_of_symbols[k]);
printf("\n");
sleep(1);
}
pthread_exit(NULL);
}
void proc_thread2(void *arg)
{
int k, j, i;
for (k=0; k<23; k++)
{
if (k == 10)
{
pthread_cancel(tid3);
printf("\033[24;0H");
for (i=1; i<=80; i++)
{
printf(" ");
}
printf("\033[24;0HфТЕФЙК ДПР. РПФПЛ ХОЙЮФПЦЕО.");
};
printf("\033[%d;48H",k+1);
printf("%d: ");
for (j=0; j<(int)arg; j++)
printf("%c",array_of_symbols[k]);
printf("\n");
sleep(3);
}
pthread_exit(NULL);
}
void proc_thread3(void *arg)
{
int k, j;
for (k=0; k<23; k++)
{
printf("\033[%d;72H",k+1);
printf("%d: ");
for (j=0; j<(int)arg; j++)
printf("%c",array_of_symbols[k]);
printf("\n");
sleep(2);
}
pthread_exit(NULL);
}
int main()
{
int i, k;
for (i=0; i<=30; i++)
{
printf("\n");
}
if (pthread_create(&tid1,NULL,(void*)proc_thread1,(void*)3) == -1)
{
printf("пЫЙВЛБ УПЪДБОЙС 1-ПЗП РПФПЛБ\n");
exit(1);
}
if (pthread_create(&tid2,NULL,(void*)proc_thread2,(void*)2) == -1)
{
printf("пЫЙВЛБ УПЪДБОЙС 2-ПЗП РПФПЛБ\n");
exit(2);
}
if (pthread_create(&tid3,NULL,(void*)proc_thread3,(void*)4) == -1)
{
printf("пЫЙВЛБ УПЪДБОЙС 3-ПЗП РПФПЛБ\n");
exit(3);
}
for (k=0; k<23; k++)
{
if (k == 5)
{
pthread_kill(tid1, SIGSTOP);
printf("\033[24;0H");
for (i=1; i<=80; i++)
{
printf(" ");
}
printf("\033[24;0HрЕТЧЩК ДПР. РПФПЛ РТЙПУФБОПЧМЕО.");
};
if (k == 12)
{
pthread_kill(tid1, SIGCONT);
printf("\033[24;0H");
for (i=1; i<=80; i++)
{
printf(" ");
}
printf("\033[24;0HрЕТЧЩК ДПР. РПФПЛ ЧПЪПВОПЧМЈО.");
};
printf("\033[%d;0H",k+1);
printf("%d: ");
printf("%c",array_of_symbols[k]);
printf("\n");
sleep(2);
}
getchar();
return 0;
}
Соседние файлы в предмете Операционные системы