+[NSThread sleepForTimeInterval:]
более вероятно сделает то, что вы хотите, если время внезапно изменится. Нахождение во второй теме не влияет на вещи.
Однако я не понимаю, почему второй поток вообще должен спать. Если вы хотите дождаться новых данных, используйте что-то вроде NSCondition или NSConditionLock, чтобы сигнализировать о поступлении данных.
В качестве альтернативы, не используйте потоки напрямую. Вы можете использовать NSOperation или executeSelectorInBackground: или dispatch_ *, чтобы назвать несколько.
РЕДАКТИРОВАТЬ: Вам нужно быть очень осторожным при написании традиционного кода синхронизации потоков, и вы должны быть такими же осторожными при каждом редактировании добавить новую функцию. У меня есть некоторый многопоточный код, о котором мне нужно подумать пару минут, чтобы понять, что происходит. Тупики не веселые.