Я думаю, что нашел что-то, что могут сделать C # и Ruby, но Python не может
в C #:
for (var i = 0; i < 100; i++)
new Thread(() => { Console.Write(i+" "); }).Start();
Console.ReadLine();
в рубине:
for i in 0...100
Thread.start{
print i + ''
}
end
gets
Есть идеи? Не могли бы вы переписать приведенный выше код на Python? вывод должен быть похож на C # и Ruby: имеет повторяющиеся числа .
Редактировать
Выходной результат составляет 100 раз печати с дублирующимися номерами. Если вы определите класс или новый метод, вы получите только 100 раз печати без дубликатов. Я знаю, что повторять числа бессмысленно, я просто хочу использовать python для достижения того же эффекта, что и в C # и ruby.
пример вывода C #:
3 3 3 3 5 7 8 8 10 10 12 12 13 14 17 17 17 18 20 20 22 23 24 24 25 28 28 29 29 3
1 31 33 33 34 36 38 38 38 41 41 41 42 44 45 45 46 49 49 50 50 52 52 55 56 56 56
58 59 59 60 61 64 64 64 66 66 67 68 69 72 72 72 73 74 76 76 78 78 81 81 82 83 84
84 86 86 87 89 89 90 93 94 94 95 95 97 97 99 99 100
пример выходных данных Ruby:
99999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999
Почему мне нужны дубликаты номеров:
выходные данные кода C # и ruby имеют повторяющиеся числа. Это потому, что основной поток изменяет значение i, поэтому некоторые дочерние потоки могут печатать одно и то же число. Основной поток и дочерние потоки ссылаются на одну и ту же переменную i .
Иногда это полезно: основной поток изменяет переменную, все дочерние потоки получают обновленную переменную.
Но как мы можем сделать это в Python?