Как сделать код, что заполнит процессор и его ядра на 100%!

Как сделать код, который загрузит ядра на 100%.


Ответы (3 шт):

Автор решения: Sia Minutu

Код безобиден, но лучше использовать на хороших ПК.

from threading import Thread

class MyThread(Thread):
    def __init__(self, name):
        Thread.__init__(self)
        self.name = name

    def run(self):
        for i in range(1000000):
            msg = "%s is running" % \
                self.name
            print(msg)


def create_threads():
    for i in range (10000):
        name = "Thread #%s" % (i + 1)
        my_thread = MyThread(name)
        my_thread.start()

if __name__ == "__main__":
    create_threads()
→ Ссылка
Автор решения: Waujito
for i in range(100000000): 
  for a in range(100000000): 
    print(a)

Что может быть проще?)

→ Ссылка
Автор решения: Stanislav Volodarskiy

multiprocessing.cpu_count возвращает число процессоров в системе. Pool создаёт пул процессов по числу процессоров. Pool.map загружает их бесполезной работой: запускает бесконечный цикл в функции f.

import multiprocessing


def f(_):
    while True:
        pass


if __name__ == '__main__':
    n = multiprocessing.cpu_count()
    with multiprocessing.Pool(n) as p:
        p.map(f, [None] * n)

P.S. Запуск нескольких нитей внутри одного процесса не поможет из-за GIL (global interpreter lock).

→ Ссылка