Что такое функционирование в «Реальном масштабе времени»


Download 1.86 Mb.
Pdf ko'rish
bet58/72
Sana19.04.2023
Hajmi1.86 Mb.
#1362511
TuriУчебное пособие
1   ...   54   55   56   57   58   59   60   61   ...   72
Bog'liq
Луканов А.С. Системы реального времени 2020

 
Атрибутная запись потока 
Когда вы осуществляете запуск нового потока, он может 
следовать ряду четко определенных установок по умолчанию, или 
же вы можете явно задать его характеристики. 
Прежде, чем мы перейдем к обсуждению задания атрибутов 
потока, рассмотрим тип данных 
 
Синхронизация 
Самый 
простой 
метод 
синхронизации 
— 
это 
«
присоединение» (joining) потоков. Реально это действие означает 
ожидание завершения. 
Присоединение выполняется одним потоком, ждущим 
завершения другого потока. Ждущий поток вызывает pthreadjoin(): 
#include 
int 
pthread_join (pthread_t thread, void **value_ptr); 
Функции pthreadjoin() передается идентификатор потока, к 
которому вы желаете присоединиться, а также необязательный 
аргумент value_ptr, который может быть использован для 


123 
сохранения возвращаемого присоединяемым потоком значения. 
(Вы можете передать вместо этого параметра NULL). 
Где нам брать идентификатор потока? 
В функции pthread_create() в качестве первого аргумента 
указатель на pthread_t. Там и будет сохранен идентификатор вновь 
созданного потока. 
3.2. 
Текст программы 
#include 
#include 
#include  
pthread_t thread_id1; 
pthread_t thread_id2; 
void * long_thread1(void *notused) 

int n; 
for(n=0;n<5;n++) 

printf("Eto pervii potok , TID %d - N povtora %d \n", 
thread_id1, n ); 
sleep(2); 


void * long_thread2(void *notused) 

int m; 
for(m=0; m<5; m++) 

printf("Eto vtoroi potok , TID %d - N povtora %d \n", 
thread_id2 , m ); 


124 
sleep(1); 


int main(void) 

printf("Prog threads PID %d \n",getpid()); 
pthread_create(&thread_id1, NULL, long_thread1, NULL); 
pthread_create(&thread_id2, NULL, long_thread2, NULL); 
sleep(40); 
return(1); 


Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   ...   54   55   56   57   58   59   60   61   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling