Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 22.09.2022 в Сообщения

  1. 1 балл
    Спасибо, исправил. Постараюсь внимательнее проверять фичи перед пушем. Или на Тотору спихну, пусть ревьювит))0
  2. 1 балл
  3. 1 балл
    Ценою неимоверных усилий удалось портировать уже известную вам библиотеку thread в ОС. Библиотека доступна для скачивания по команде Установка: pastebin get E0SzJcCx /lib/thread.lua [код] По сравнению с версией для СС, библиотека имеет еще две функции, вызываемых без параметров: thread.init() - инициализирует многозадачный режим. Должна вызываться один раз перед вызовом других функций библиотеки. thread.waitForAll() - ожидает завершения всех дочерних потоков. В отличии от СС-версии, дочерние потоки прерываются при завершении родительского. Поэтому, waitForAll следует вызывать в конце основной программы, чтобы дать возможность дочерним завершиться корректно. Функции create, kill и killAll работают аналогично версии для СС. thread.create(f , ...) - создает поток, который сразу же начинает выполняться параллельно основному потоку. При желании можно создать серию потоков, вызвав функцию create несколько раз подряд. В качестве параметра f необходимо указать функцию, содержащую тело потока. После f можно указать параметры, передаваемые ей. Функция create возвращает вновь созданный поток как объект типа нить ("thread"). Значение это может понадобиться если вы захотите прервать принудительно созданный поток. thread.kill(co) - прерывает выполнение параллельного потока. co - завершаемый поток, значение, полученное при вызове функции create. thread.killAll() - прекращает выполнение всех параллельных потоков, за исключением основного. Пример работы с библиотекой: local thread = require("thread") -- Инициализируем многозадачность thread.init() -- Функция, которая выводит строку str несколько раз с интервалом секунда function foo(str,n) for i=1,n do print(str) os.sleep(1) end end -- Запускаем два экземпляра функции с разными параметрами thread.create(foo,"AAA",5) thread.create(foo,"BBB",7) -- Ждем завершения thread.waitForAll() Результат работы программы
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...