Если значение, возвращаемое потоком, не представляет интереса, то можно вызвать его метод detach (). Это исключает возможность последующего вызова метода join (). Основное преимущество отключения потока с помощью метода detach () состоит в том, что основной поток освобождается от обязанности подключаться в дальнейшем к другим потокам. Подробнее об этом можно узнать у IT специалистов тут .
@threads = Thread->list()
Этот метод класса возвращает список объектов Thread. Список включает не только работающие потоки, но и те потоки, которые завершили свою работу, но ожидают, пока к ним подключатся с помощью метода join ( ) .
$thread = Thread->self()
Этот метод класса возвращает объект Thread, соответствующий текущему потоку,
$tid = $thread->tid()
С каждым потоком связан числовой идентификатор, называемый идентификатором потока (tid - thread ID). Он не имеет конкретного применения, возможно за исключением того, что может служить индексом массива или встраиваться в отладочные сообщения. Идентификатор потока tid может быть получен с помощью метода tid ():
lock ($variable)
Функция lock () блокирует переданный ей скаляр, массив или хеш таким образом, что никакой другой поток не сможет заблокировать эту переменную до тех пор, пока блокировка первого потока не выйдет из области определения. Применительно к контейнерным переменным, таким как массивы, блокировка всего массива (например, с помощью вызова lock (@connections) отличается от блокировки компонента массива (например, lock ($connections[3]).
Для использования функции lock () нет необходимости явно импортировать модуль Thread. Эта функция встроена в ядро всех версий Perl, которые поддерживают многопоточную обработку. В версиях Perl, которые не поддерживают многопоточную обработку, функция lock () не выполняет никаких действий. Это позволяет создавать модули, обеспечивающие безопасную поддержку потоков, которые будут работать в равной степени успешно в версиях Perl как с поддержкой многопоточной обработки, так и без нее.