1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bitschen-go-goes

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Go Goes

50 строк кода для создания очень простого пула Goroutines - Go

Установка

go get -u github.com/yoojia/go-goes

Зависимости

[[constraint]]
  name = "github.com/yoojia/go-goes"
  version = "0.1.0"

Использование

Три шага:

  1. Создайте GoesPool;
  2. Запустите пул Goroutines;
  3. Используйте метод Add для добавления задач;
// Укажите создание пула Goroutines с 100 рабочими Goroutines
pool := goes.NewGoesPoolDefault(100)
// Запуск
pool.Start()

// Остановка пула Goroutines, блокировка ожидания завершения всех задач
defer pool.Shutdown()

var wg sync.WaitGroup

TASKS := int(1000 * 100)
for i := 0; i < TASKS; i++ {
    wg.Add(1)
    // Используйте метод Add для добавления задачи в пул Goroutines
    pool.Add(func() {
        wg.Done()
    })
}

wg.Wait()

Примечания

Необходимо учитывать следующие моменты:

  1. Необходимо вызвать метод Start для запуска пула Goroutines, иначе задачи, добавленные методом Add, не будут выполнены;
  2. Метод Shutdown должен вызываться после метода Start, иначе он будет блокироваться и не вернёт управление;
  3. Метод Add, если пул Goroutines заполнен, будет блокироваться до тех пор, пока в пуле не появится свободный рабочий Goroutine;

Проекты

Этот проект обновляется и поддерживается на следующих двух платформах для хранения исходного кода:

Лицензия

Этот пакет лицензирован под Apache License 2.0. Подробнее см. LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/bitschen-go-goes.git
git@api.gitlife.ru:oschina-mirror/bitschen-go-goes.git
oschina-mirror
bitschen-go-goes
bitschen-go-goes
master