Да, это может произойти для любой операции синхронизации, когда одному потоку нужно ждать, пока другой поток что-то сделает. Например, если поток A удерживает блокировку, а затем выполняет долгую блокирующую операцию в ядре, другой поток B заблокирует, если попытается получить блокировку. Поток B будет заблокирован по крайней мере до завершения операции блокировки потока A.
В крайних случаях ожидающие друг друга потоки приведут к Deadlock
Дополнительные уточнения :
Потоки в процессе выполняются независимо друг от друга. Блокировка одного потока не обязательно должна блокировать другие потоки. Это одна из главных причин, по которой потоки используются в первую очередь.