Golang
Какими механизмами осуществляется асинхронное копирование данных между базами данных?
Как организована структура массива в памяти и как происходит доступ к его элементам?
Что произойдет, если попытаться добавить элемент в Map, которая еще не была создана или инициализирована?
Где в структуре проекта размещён слой взаимодействия с базой данных?
Объясните принцип функционирования канала для передачи данных в вашем приложении.
Можешь ли ты перечислить основные виды абстракций, используемых в Kafka?
Можете объяснить, что подразумевается под феноменом фантомного чтения в контексте транзакций?
Какое максимально допустимое количество элементов можно добавить с помощью метода append к переданному слайсу без возникновения ошибок или изменений в исходных данных?
func Copy(src io.Reader, dst io.Writer) error { //... } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) (statusCh, error) { //... go func() { statusCh }() } func Read() { select { case status := <-statusCh: } } type Stat struct { status string err error } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) go func() { statusCh{ } } return statusCh } func Read() { select { case status := <-statusCh: } } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { select { case : n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } default: statusCh <- Stat{ bCopy: total, status: "pending", err: nil, } } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } }
Можно ли применять несколько механизмов блокировки (Mutex) внутри одной функции одновременно?
Какие отличия существуют между оперативной памятью, хранящей данные в течение работы программы, и разделяемой памятью, доступной нескольким процессам?
Какое отличие между горутинами и традиционными потоками исполнения?
Каким образом осуществляется взаимодействие между горутинами при помощи каналов в Go?
Как ведет себя программа при попытке отправить данные в канал, который не содержит элементов и использует буферизацию?
Можете объяснить концепцию псевдопараллельных процессов в программировании?
Как устроен интерфейс в Go изнутри (в памяти)?
Из каких структур данных складывается реализация отображения ключ-значение в большинстве языков программирования?
Расскажи подробнее про то, как ты снизил P95 Latency.
Какое отличие между механизмами репликации и главным сервером в базе данных?
Как определить размер страницы памяти в операционной системе Unix?