Օգտագործե՞լ եք Inbox և Outbox ձևանմուշները։
Golang
Տվյալը՝ «Timeout-ով ping-pong» Գրեք pingPong անունով ֆունկցիա՝ - Ստեղծեք երկու goroutine՝ մեկը գեներացնում է «ping» հաղորդագրություններ, մյուսը՝ «pong»: - Goroutine-ները պետք է փոխանակվեն հաղորդագրություններով միայն հերթականությամբ: - Փոխանակումը տևում է 3 վայրկյան, հետո ծրագրի ավարտը պետք է լինի (մաքուր փակում): - Օգտագործեք կոնտեքստ՝ ժամանակային սահմանափակմամբ չեղարկելու համար: - Ամբողջ հաղորդագրությունը ցուցադրեք էկրանին՝ սկսած սկզբից, ժամանակով (միլիսեկունդներով): Անկախ սպասվող ելքը՝ 0ms: ping
Պարզ ուղիղ կոդավորման առաջադրանք (հիմնական մրցակցություն) Պայման: Գրեք fetchAll(urls []string) map[string]string ֆունկցիան, որը յուրաքանչյուր URL-ի համար իրականացնում է համաժամանակյա HTTP GET հարցում և վերադարձնում է քարտեզ, որտեղ բանալի է URL-ը, արժեքը՝ պատասխան մարմինը (ստրինգ): Եթե հարցումը ձախողվի (գործողություն, ոչ 200), արժեքը կլինի դատարկ տող: Հատկություններ: - Չի կարելի օգտագործել արտաքին գրադարաններ (միայն ստանդարտները): - Չի կարելի փոխել ստորագրությունը: - Ծրագիրը չի պետք է ընկնի http.Get-ում պանիկի դեպքում: Մուտքի օրինակ: ["[link]" "[link]" "[link]"]
հիմնական փաթեթ import ( "fmt" ) func a(p *string) { s2 := "string2" *p = s2 } func main() { str1 := "string1" p := &str1 fmt.Println(*p) a(&p) fmt.Println(*p) }
Լրացրեք սլայսը առանց մյուտեքսի, որպեսզի այն ունենա բոլոր 1000 տարրերը։
Ինչպես ապահովեցին ինդեմպոտենտությունը?
Որտե՞ղ են պահվել լոգերը։
Ի՞նչ ասել հարցազրուցավարին (եթե հարցնեն) "Ես օգտագործում էի worker pool՝ հաստատված worker-ների քանակով, առաջադրանքների համար ալիք և sync.WaitGroup: Worker-ները կիրականացնեն հարցումները, իսկ ժամանակի սահմանափակումը և չեղարկումը վերահսկվում են կոնտեքստի միջոցով: Արդյունքները հավաքում եմ mutex-ով պաշտպանված բալոնում (կամ առանձին ալիքով):" Հիմա քո հերթն է Այս զրույցում կոդը գրիր: Ես կստուգեմ և կտրամադրեմ հետադարձ կապ: Եթե չգիտես որտեղից սկսել, խնդրիր խորհուրդ: Հաջողություն!
Դու լսե՞լ ես բաժանված հետևման մասին։
// բոլոր էլեմենտները սլայսում պետք է լինեն յուրօրինակ + ընդհանուր 1000 էլեմենտ // ծրագիրը չպետք է անպատճառ կանգնի ավելորդ ժամանակով due to time.sleep func main() { checkIncrement := map[int]int32{} var data []int for i := 0; i < 1000; i++ { go func() { data = append(data, i) if _, found := checkIncrement[i]; found { fmt.Println(i) panic("կրկնվող աճ") } checkIncrement[i] = 1 }() } time.Sleep(2 * time.Second) fmt.Println(len(data)) }
Ի՞նչ է pointer-ը և ինչ կլինի, եթե ֆունկցիայի արգումենտը pointer է։
Ի՞նչն է տարբերությունը DELETE և TRUNCATE-ի միջև։
խոսեք Postgres-ի բլոկավորումների մասին։
Ինչպե՞ս օգտագործեցիք Redis-ը։
Պատմիր ինձ վերջին նախագծիդ մասին։