# Объект «Threading»

Предоставляет управление параллельными потоками.

| Метод                                                                       | Описание                                                              |
| --------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| [joinThread](/trik/programming-code/object-threading.md#jointhread)         | Ожидает завершения указанного потока.                                 |
| [killThread](/trik/programming-code/object-threading.md#killthread)         | Заканчивает исполнение указанного потока.                             |
| [receiveMessage](/trik/programming-code/object-threading.md#receivemessage) | Запрашивает принятое сообщение.                                       |
| [sendMessage](/trik/programming-code/object-threading.md#sendmessage)       | Посылает сообщение указанному потоку.                                 |
| [startThread](/trik/programming-code/object-threading.md#startthread)       | Запускает переданную в качестве параметра функцию в отдельном потоке. |

## joinThread

Ожидает завершения указанного потока.

#### Синтаксис

{% tabs %}
{% tab title="JavaScript" %}

```javascript
Threading.joinThread("threadId")
```

{% endtab %}
{% endtabs %}

В качестве параметра необходимо указать id потока.

## killThread

Заканчивает исполнение указанного потока.

#### Синтаксис

{% tabs %}
{% tab title="JavaScript" %}

```javascript
Threading.killThread("threadId")
```

{% endtab %}
{% endtabs %}

В качестве параметра необходимо указать id потока.

## receiveMessage

Запрашивает принятое сообщение.

#### Синтаксис

{% tabs %}
{% tab title="JavaScript" %}

```javascript
Threading.receiveMessage(wait)
```

{% endtab %}
{% endtabs %}

Если `wait` равен `true`, то ожидает, пока не придет сообщение.

## sendMessage

Посылает сообщение указанному потоку.

#### Синтаксис

{% tabs %}
{% tab title="JavaScript" %}

```javascript
Threading.sendMessage("threadId", "message")
```

{% endtab %}
{% endtabs %}

В качестве параметров необходимо указать id потока и сообщение.

## startThread

Запускает переданную в качестве параметра функцию в отдельном потоке.

{% hint style="warning" %}
**Внимание!** При этом создаётся новая копия для всех глобальных переменных. Так что если в одном потоке значение переменной меняется, в другом потоке оно остаётся старым.
{% endhint %}

#### Синтаксис

{% tabs %}
{% tab title="JavaScript" %}

```javascript
Threading.startThread("newThreadId", "functionName")
```

{% endtab %}
{% endtabs %}

В качестве параметров необходимо указать id потока и функцию.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.trikset.com/trik/programming-code/object-threading.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
