Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
func (d *Dispatcher) Run() {
// starting n number of workers
for i := 0; i < d.maxWorkers; i++ {
worker := NewWorker(d.pool)
worker.Start()
}
go d.dispatch()
}
Но с самого начала наша команда знала, что мы должны написать это на Go, посколько на этапе обсуждения мы уже понимали, что эта система должна будет справляться с огромным траффиком.
func StartProcessor() {
for {
select {
case job := <-Queue:
// job.payload.UploadToS3() // <-- STILL NOT GOOD
go job.payload.UploadToS3()
}
}
}
boost::asio::io_service ios;
ios.post(&routine1); // routine -- это обычный указатель на функцию
ios.post(&routine2);
ios.post(&routine3);
...
std::thread t1(&boost::asio::io_service::run, &ios);
std::thread t2(&boost::asio::io_service::run, &ios);
ios.run();
t1.join(); t2.join();
Обработка 1 миллиона запросов в минуту c Go