Вот пример наличия двух перечислений в различных пространствах имен:
using TotallyDifferentNameSpace.Enums;
namespace EnumEx
{
class Program
{
static void Main(string[] args)
{
CarType car = CarType.Audi;
PetrolType pType = PetrolType.Diesel;
}
}
public enum CarType
{
Volkswagen,
Audi,
Toyota,
Ford,
Porsche,
Lada
}
}
namespace TotallyDifferentNameSpace.Enums
{
public enum PetrolType
{
Gasoline,
Diesel
}
}
В каждом Если вы создали два дополнительных потока, значит, у вас есть три (x, y и main). Вы получите разные идентификаторы для каждого из потоков, включая вызов в main.
Главный поток всегда присутствует, и вы создаете дополнительные новые потоки. Если основной поток умирает, программа умирает или поведение не определено. Также можно начать с большого количества потоков, поскольку среда выполнения может запускать (и часто будет - как реализация linux_threads "pthreads") потоки сами по себе.
Вызов yield всегда возможен, поскольку он просто сообщает ОС, что он может оставшуюся часть времени передать другому потоку, если есть поток с таким же или более высоким приоритетом. Если вы не пишете функции синхронизации низкого уровня, такие как спин-блокировки, нет реальной причины вызывать yield в вашем приложении.