Библиотека Go-разработчика | Golang
23.3K subscribers
2.09K photos
42 videos
87 files
4.46K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
Митап в Казани от MWS Cloud Platform
30 сентября в Казани пройдёт технический митап для Java&Kotlin-разработчиков от MWS Cloud Platform.

В программе мероприятия доклады от ведущих инженеров команды облака, а ещё горячая дискуссия о будущем языков Java и Go в энтерпрайзе. Приходите послушать доклады и поучаствовать в обсуждениях — будет интересно!
Казань, MEDIAPORT, 18:00.
Регистрация: https://mws.ru/events/
1🤔1
💰 Любимчики больших компаний

У кого растут зарплаты в айтишечке? Не всё так радужно, как показывают отчёты: зарплаты растут на бумаге, но не в жизни.

Рассказываем в карточках, какие тренды определяют рынок IT-зарплат прямо сейчас.

➡️ Читать статью

🐸Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔧 Эффективное управление горутинами

Горутины — это то, что открывает перед нами огромные возможности. Однако, с большим количеством задач приходит и необходимость эффективно управлять ими.

Давайте представим ситуацию, когда вам нужно выполнить множество однотипных операций — например, обработку запросов к базе данных, массовую загрузку данных или параллельные вычисления.

С помощью Ants вы создаете пул горутин, который управляет числом параллельных задач, позволяя их выполнять только в пределах установленного лимита.

Например, если вы хотите ограничить количество одновременно выполняющихся горутин до 10:
package main

import (
"fmt"
"sync"
"time"

"github.com/panjf2000/ants/v2"
)

func main() {
pool, _ := ants.NewPool(10) // Создаем пул с 10 горутинами
defer pool.Release() // Освобождаем ресурсы по завершению

var wg sync.WaitGroup

for i := 0; i < 20; i++ { // Добавляем 20 задач
wg.Add(1)
pool.Submit(func() {
defer wg.Done()
fmt.Println("Задача выполняется")
time.Sleep(1 * time.Second) // Симуляция работы
})
}

wg.Wait() // Ждем завершения всех задач
fmt.Println("Все задачи завершены!")
}


Несмотря на то, что добавляем 20 задач, одновременно будут работать только 10, и по мере их завершения пул будет заполняться новыми задачами.

Что ещё умеет Ants:

• Пул горутин обрабатывает паники.

• Можно использовать контексты для отмены задач.

• Можно настраивать пул по ёмкости, числу параллельных задач и времени жизни горутин.

➡️ GitHub библиотеки

🐸Библиотека Go-разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔1
Мы сделаем вам предложение, от которого невозможно отказаться 🤌

Вы покупаете себе курс «Математика для Data Science» от преподавателей ВМК МГУ, а мы дарим второй такой же курс вашему другу.

Предложение действует только до 1 сентября. Ничего личного, просто математика.

👉 Принять предложение