როგორ შევცვალო Acquire/Lock სემაფორი, რათა მოლოდინი შეიძლება გაუქმდეს ან დროით შეზღუდული იყოს?
Golang
სად გსურთ განვითარდეთ?
მეორე კომპანიებთან კიდევ კომუნიკაციას ახდენთ? იქნებ, უკვე შეთავაზებები გაქვთ?
როდის და როგორ გადადიან გორუტინები?
რომელ კრიტერიუმებზე დაყრდნობით აირჩევი შეთავაზებას, თუ რამდენიმე იქნება?
პროგრამის ნაწილის კონკურენტული და პარალელური შესრულება ერთნაირია?
WaitGroup ნერვულში იყენებს Atomic-ს რაოდენობისთვის. WaitGroup შეუძლია მიიღოს სამუშაოს წონა. როგორ დაწერდი სემაფორს, რომ მეთოდები Lock(weight int), TryLock(weight int) და Release(weight int) მიიღონ წონა? გორუტინა მაშინვე იკავებს რესურსებს მთელი ოპერაციისთვის, და ყოველი ეტაპის (IO-bound, CPU-bound) შემდეგ ცოტათი თავისუფლდება. როგორ განახორციელებდი ამას?
მითხარი netpoller-ი Go-ში.
რა დატვირთვები იყო ბოლო სამუშაო ადგილებზე (RPS)?
PostgreSQL-ში ველი პირველადი გასაღებად გამოაცხადე რა ხდება?
გა-ში GMP მოდელის შესახებ ისაუბრეთ: როგორ მუშაობენ G, M და P, დაგეგმვა, netpoller და sysmon?
როგორ მუშაობს context.WithCancel გაუქმებისას?
PostgreSQL-ში რა ტიპის ინდექსი არის ნაგულისხმევი?
რა არის ოპერაციის იდემპოტენტობის თვისება?
თქვენი სამუშაო გამოცდილების განმავლობაში ყველაზე საინტერესო პროექტის შესახებ ისაუბრეთ. რა განახორციელეთ, რა ტექნიკური და ბიზნეს დავალებები იყო?
რა განსხვავებაა map და sync.Map-ს შორის?
რატომ გადაწყვიტეთ ბაზარზე გასვლა? რა არ მოგწონთ თქვენს მიმდინარე ადგილას?
შეგიძლიათ თქვენი ბოლო პროექტის შესახებ ისაუბროთ: რა გითავდით, რა დაწერეთ თქვენ და როგორი იყო გუნდი?
თხელი უსაფრთხოების პრობლემა არსებობს: თუ ორი goroutine ერთდროულად გამოიძახებს Lock-ით ციკლს, ისინი შეიძლება ერთმანეთში აურიონ. როგორ უნდა გამოსწორდეს ეს?
ტიპი Sem ინტერფეისი { Lock() შეცდომა //დაბრუნებს შეცდომას თუ არხი სავსეა TryLock() ჭეშმარიტი // ჩვენ უბრალოდ ვცდილობთ ჩაკეტვას, თუ მოხერხდა, დაბრუნდება true Release() //არხის გათავისუფლება Cap() int //მუშაობს გორუტინების რაოდენობა FreeSpace() int //აჩვენებს რამდენი თავისუფალი ადგილი აქვს არხში } //სტრუქტურა //channel - ფიქრი ბუფერზე //capacity int //mutex