я создал 2 треда. В каждый из них посылаю одинаковую фукнцию, которая работает с общей памятью и производит какие-то вычисления.
Как я понял, функция начинает работать внутри треда как только завершается конструктор треда и выполнение моего кода будет идти и до того момента, как я сделал join, и после этого.
Я решил циклом сделать join. Сначала я сделал join к первому потоку и жду конца его исполнения(блокируя вызывающий поток). А затем я делаю join во второй поток.
1. Правильно ли я понимаю, что при этом ожидая результат выполнения первого потока, второй в это же время тоже выполняется? То есть все 2 потока параллельно считают, но лишь один я ожидаю.
2. Если второй поток завершил все вычисления в функции, то join к нему после этого момента заблокирует и сразу же разблокирует вызывающий поток? Ведь там поток завершил работу.
бля, лучше давай кодом)
1)да 2) да
"функция начинает работать внутри треда как только завершается конструктор треда" - планировщик потоков сам решает когда начать. так что не сразу
Обсуждают сегодня