Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- thread.sleep( seconds, microseconds )
- вызвавший поток заснёт на seconds секунд и microseconds микросекунд
- ничего не возвращает
- thread.join( thread )
- вызвавший поток будет ожидать завершения потока thread
- thread это userdata, полученная от thread.create
- возвращает true в случае успешного вызова
- возвращает nil, текст ошибки, код ошибки в случае провала
- thread.create( function, argtable )
- запускает в отдельном потоке функцию function с аргументами argtable
- function - любая функция, можно даже сишную (например, print)
- argtable - список аргументов (ключ - индекс, начиная с 1, значение - аргумент)
- возвращает userdata в случае успешного запуска
- возвращает nil, текст ошибки, код ошибки в случае провала
- thread.mutex()
- создаёт мьютекс
- возвращает userdata в случае успешного запуска
- возвращает nil, текст ошибки, код ошибки в случае провала
- thread.cond()
- создаёт condition
- возвращает userdata в случае успешного запуска
- возвращает nil, текст ошибки, код ошибки в случае провала
- thread userdata:
- t = thread.create ......
- t:stop()
- мгновенно обрывает выполнение потока
- обрыв не произойдёт на крит. секции, т.к. используется lua_lock
- mutex userdata:
- m = thread.mutex()
- m:lock()
- войти в крит. секцию
- m:unlock()
- выйти из крит. секции
- condition userdata:
- c = thread.cond()
- c:signal()
- c:broadcast()
- послать сигнал на прерывание wait
- c:wait( mutex )
- начать ожидание сигнала
- mutex - userdata, созданная с помощью thread.mutex()
- использование:
- mx:lock()
- cond:wait(mx)
- mx:unlock()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement