Перейти к содержимому

Group-IB - 1

  • Чем отличается процесс от потока? linux-os/processes
  • Если в одном потоке был открыт файл, то можно передать хендлер в другой поток? go/concurrency
  • Что такое зомби процесс и как они появляются? linux-os/processes
  • Что такое горутина в Go и как она соотносится с тредами ОС? go/concurrency
  • Какие примитивы синхронизации есть в Go? go/basics
  • В каких случаях могут потребоваться буферизированные каналы? go/channels
  • Какой порядок на чтение и запись в очереди канала? algorithms/data-structures
  • Какие кейсы хорошо решаются с mysql, clickhouse и elasticsearch, а какие плохо? nosql-cache/clickhouse
  • В mongo есть предел для горизонтального скейла? nosql-cache/mongodb
  • Какие операции плохо работают на mongo? nosql-cache/mongodb
  • Через орм или чистый sql работаете с бд и какие критерии выбоа? sql/general
  • Как работает https и как работает сертификат? network/http
  • Как проверяется публичный ключ? security/crypto
  • Что такое http 2.0 и какие основные отличия? network/http
  • А про http 3.0 что можете рассказать? network/http
  • Сколько можно одновременно создать tcp соединений c одного хоста? network/tcp-udp
func main() {
a := []int{1, 2, 3, 4, 5}
for _, i := range a {
go func() {
fmt.Println(i)
}()
}
}
func main() {
a := map[string]int{}
b := make(map[string]int, 10)
a["test "]++
b["test "]++
fmt.Println(a["test "])
fmt.Println(b["test "])
}
func main() {
a := []int{1, 2, 3}
b := a[:2]
b[0] = 2
fmt.Println(a[0])
}
func main() {
a := []int{1, 2}
b := a[:]
b = append(b, 3, 4, 5)
b[0] = 2
fmt.Println(a[0])
}

Задача: Задача 5. Есть две таблицы A и B. В каждой из них по одному стобцу A.x и B.y со значениями 1, 2 и 1, 1. Что выведут следующие запросы? go/puzzles

Заголовок раздела «Задача: Задача 5. Есть две таблицы A и B. В каждой из них по одному стобцу A.x и B.y со значениями 1, 2 и 1, 1. Что выведут следующие запросы? go/puzzles»
SELECT A.x, B.y FROM A LEFT JOIN B ON B.y =A.x;
SELECT A.x, B.y FROM A INNER JOIN B ON B.y =A.x;

Задача: Задача 6. Есть таблица X с полями X.a, X.b, X.с типа int. Необходимо построить индекс так, чтобы эффективно выполнялись следующие три запроса. sql/indexes

Заголовок раздела «Задача: Задача 6. Есть таблица X с полями X.a, X.b, X.с типа int. Необходимо построить индекс так, чтобы эффективно выполнялись следующие три запроса. sql/indexes»
SELECT*FROM X WHERE a =A AND b =B AND c=C;
SELECT*FROM X WHERE b =B;
SELECT*FROM X WHERE a >A AND b =B AND c=C;
  • есть ли разница для составного индекса от запросов a = A and b = B и b = B and a = A? sql/indexes
  • индекс на (b, a, c) или (b, c, a) будет работать быстрее и почему? sql/indexes
func callCallbacks(a, b func()) {
go a()
go b()
}
func example() {
firstDone := make(chan struct{})
secondDone := make(chan struct{})
callCallbacks(
func() {
fmt.Printf("a ")
close(firstDone)
},
func() {
fmt.Printf("b ")
close(secondDone)
},
)
count := 0
for count < 2 {
select {
case <-firstDone:
count++
case <-secondDone:
count++
}
fmt.Printf("%d ", count)
}
}
func main() {
example()
}