Gentee
  • Скриптовый язык программирования Gentee
  • Синтаксис языка
    • Лексические элементы
    • Типы
    • Описания
    • Конструкции языка
    • Обработка ошибок
    • Выражения
    • Запуск программ
    • Многопоточность
    • Включение и импорт файлов
  • Стандартная библиотека
    • Архивация
    • Ассоциативные массивы
    • Буфер
    • Время
    • Конвертация
    • Консоль
    • Константы
    • Контекст
    • Криптография
    • Логический тип
    • Массивы
    • Многопоточность
    • Множества
    • Объекты
    • Процесс
    • Путь
    • Рантайм
    • Регулярные выражения
    • Сеть
    • Символьный тип
    • Система
    • Строки
    • Файлы
    • Целые числа
    • Числа с плавающей точкой
  • Интеграция с Go
    • Документация
    • Компиляция и выполнение
    • Дополнительные возможности
    • Песочница
  • Сменить язык
    • English
Powered by GitBook
On this page
  • Операторы
  • Функции
  • Lock()
  • resume(thread th)
  • SetThreadData(obj o)
  • sleep(int duration)
  • suspend(thread th)
  • terminate(thread th)
  • ThreadData() obj
  • Unlock()
  • wait(thread th)
  • WaitAll()
  • WaitDone()
  • WaitGroup(int count)

Was this helpful?

  1. Стандартная библиотека

Многопоточность

PreviousМассивыNextМножества

Last updated 3 years ago

Was this helpful?

Здесь описаны операторы и функции для работы с потоками (тип thread).

Операторы

Оператор
Результат
Описание

thread = thread

Оператор присваивания.

Функции

Lock()

Функция Lock блокирует доступ к глобальному ресурсу (мьютексу). Если он уже занят другим потоком, то текущий поток ждет его освобождения. Мьютекс должен быть освобожден с помощью функции Unlock.

resume(thread th)

Функция resume продолжает работу потока, который был остановлен функцией suspend.

SetThreadData(obj o)

Функция SetThreadData присваивает текущему потоку переменную типа obj. Значение переменной может быть получено функцией ThreadData.

sleep(int duration)

Функция sleep останавливает выполнение текущего потока на как минимум duration миллисекунд.

suspend(thread th)

Функция suspend приостанавливает поток th. Используйте функцию resume для продолжения работы потока.

terminate(thread th)

Функция terminate прекращает работу потока. Если поток уже завершен, то функция ничего не делает.

ThreadData() obj

Функция ThreadData возвращает объект, который был присвоен текущему потоку. Переменная типа obj присваивается потоку функцией SetThreadData.

Unlock()

Функция Unlock освобождает доступ к глобальному ресурсу (мьютексу).

wait(thread th)

Функция wait ожидает окончания работы потока th. Если поток уже завершен, то функция ничего не делает.

WaitAll()

Функция WaitAll ожидает когда счётчик WaitGroup станет равен нулю.

run {
  int count = 3
  WaitGroup(count)
  for i in 1..count {
    go {
      // ...
      WaitDone()
    }
  }
  WaitAll()
}

WaitDone()

Функция WaitDone уменьшает счётчик WaitGroup на единицу.

WaitGroup(int count)

Функция WaitGroup создает WaitGroup счётчик потоков, которые должны завершится вызовом функции WaitDone. count - начальное значение счётчика.

Lock()
resume( thread th )
SetThreadData(obj o)
sleep( int duration )
suspend( thread th )
terminate( thread th )
ThreadData() obj
Unlock()
wait( thread th )
WaitAll()
WaitDone()
WaitGroup( int count )