Напишите программу, которая создает нить. Используйте атрибуты по умолчанию. Родительская и вновь созданная нити должны распечатать десять строк текста. Модифицируйте программу так, чтобы вывод родительской и дочерней нитей был синхронизован: сначала родительская нить выводила первую строку, затем дочерняя, затем родительская вторую строку и т.д. Используйте мутексы.
Явные и неявные передачи управления между нитями (sleep(3C)/usleep(3C), sched_yield(3RT)) и холостые циклы разрешается использовать только на этапе инициализации.
Докажите, что данная задача не может быть решена с использованием двух мутексов без использования других средств синхронизации.
мютекс2.войди
поток2.старт
повторяй 10 раз
мютекс1.войди
writeln
мютекс2.выйди
поток2.дождись
мютекс2.выйди
повторяй 10 раз
мютекс2.войди
writeln
мютекс1.выйди
while( true ) {
while( pthread_mutex_trylock( &mutex ) == EBUSY );
cout << "это мя строка, ура!" << endl;
pthread_mutex_unlock( &mutex );
}