Просто хочу добавить, что следует проявлять осторожность с шагами, если вы делитесь какими-либо ресурсами, так как это может привести к очень странному поведению, и ваш код не работает правильно, или даже потоки блокируют друг друга.
mutex поможет вам в этом, поскольку вы можете использовать блокировки mutex для защищенных областей кода, примером областей защищенного кода будет чтение или запись в общую память между потоками.
только мои 2 цента.