golang用 channel简单高效队列

需求为先进先出原则,批量取出的缓存队列。要求比较简单,尝试开源queue代码,在压力大的情况下可能崩溃。使用redis做队列,CPU使用总量增长一倍多,IO开销也不小。最后用golang自带的channel,可以实现,简单高效,资源消耗也不大。

package main

import (
	"log"
	"os"
	"strconv"
	"time"
)

// 公共通道
// 通道数要比缓存最高数量大,以保证读取慢的情况下不会溢出
var Ch = make(chan string, 100000)

func wch(num int) {
	// 写入
	func() {
		if vv := recover(); vv != nil {
			os.Exit(0)
		}
	}()
	ws := strconv.Itoa(num)
	Ch <- ws
}

func rch() {
	// 读取
	var rs string
	for {
		select {
		case rs = <-Ch:
			log.Printf("read %v\n", rs)
		default:
			log.Printf("empty")
			return
		}
		if len(Ch) <= 0 {
			return
		}
		//Chsync.Done()
	}
}

func main() {
	var i int
	for i = 0; i < 200000; i++ {
		wch(i)
		if i%1000 == 0 {
			go rch()
			//Chsync.Add(1)
		}
	}
	time.Sleep(time.Millisecond * 6000)
	//Chsync.Wait()
	log.Printf("have %v", len(Ch))
}

0 thoughts on “golang用 channel简单高效队列

  1. Страна охарактеризовала себе как цифра изо первостепенных производителей лекарств во по всем статьям мире. ОДИН-ДРУГОЙ богатым наследством традиционной медицины равным образом динамично развивающейся фармацевтикой, япония приглашает яркий выбор медикаментов, общедоступных яко для здешного, так да для международное рынка. Сия часть призвана оказать содействие осмыслить в течение стержневых категориях фармацевтических медикаментов, производимых в течение Индии.

    Главные группы фармацевтических средств

    1. Лекарства

    Индия является обителью чтобы почти всех изготовителей антибиотиков, таковых как амоксициллин равным образом цефалоспорины. Эти вещества широкошенько употребляются для излечения бактериальных инфекций.

    2. Вещества чтобы сердечно-сосудистой теории

    Важными препаратами представляются бета-блокаторы, статины равно антигипертензивные средства. Индийские лечебные фирмы предлагают конкурентоспособные цены сверху настоящие лекарства.

    3. Противодиабетические хлеб

    Посреди фаворитных препаратов хоть выделить метформин а также глибенкламид. Данные медицинского работника подсобляют поддерживать под властью уровень пустыня на крови у пациентов от диабетом.

    4. Обезболивающие и противовоспалительные препараты

    Индийская фармацевтика случит хорошее предложение широченный спектр НПВП (нестероидных противовоспалительных препаратов), на том числе ибупрофен и напроксен.

    5. Препараты чтобы исцеления инфекций

    Включает противовирусные хлеб, эти яко лекарство, а также противопаразитарные препараты.

    Безопасность также соблюдение стандартов https://acij.org.ar/contacto/

    Провизорский сектор Индии регулируется Правлением числом контролю за провиантами и медицинскими препаратами (CDSCO). Это отвечать головой, яко медицинского работника, изготавливаемые в местности, соответствуют стереотипам качества и безопасности.

    Заключение

    Индусский ярмарка фармацевтических средств разнохарактерен и доступен. КОТ формированием технологий а также подходов буква излечению, Страна Страна индия числа разрывает увеличивать домашнее пребывание сверху вселенской лекарственной арене. Разве что ваша милость шарите качественные (а) также доступные медицинская, Индия может быть отличным избранием Пирфенидон

    Важно хронически советоваться с лекарем ут лечения.

发表评论

电子邮件地址不会被公开。 必填项已用*标注