This talk must have been hard to digest live, but it's great on replay. So underrated!
@arsilvyfish11
2 күн бұрын
Excellent talk!! I replayed it quite a few times to understand the dense content, but felt it was worth the time.
@scasware
6 жыл бұрын
Excellent presentation! One of the best I have watched about Go, without a doubt the best about concurrency in Go and a great sequel to Rob Pike's "Concurrency is not Parallelism". Good thing I didn't watched it live, because I wouldn't been able to understand the code examples right there without a pause button. But that was a good thing: less time explaining how the examples work and more about why they work makes it a great presentation.
@ayangeorge
5 жыл бұрын
Yes! I was there and I admit that I didn't completely grok it. It is one of those talks that gets better with every listen and has become my favorite talk so far.
@ronminnich
10 ай бұрын
Great talk, thanks Bryan. The examples were helpful, and I found your pauses well-timed to allow me to absorb what you were communicating, by sharing the ideas :-)
@SanyLiew
6 жыл бұрын
I need rewrite my concurrency code after watching this video.
@ramilm9793
2 жыл бұрын
Too much to digest for a lunch break, I need to come back again later
@SamvelKhalatyan1
5 жыл бұрын
Great talk, that changes how one writes/views concurrent code.
@GeppettoFedora
5 жыл бұрын
The code for better worker pools at 33:06 relies on goroutines being unblocked in FIFO order, which isn't guaranteed by the Golang spec (although is the current implementation).
@gabrius99
5 жыл бұрын
No it doesn't.
@BryanMills
5 жыл бұрын
It shouldn't depend on anything being FIFO - that's one of the reasons the semaphore-acquire should happen before the `go` statement (instead of inside the goroutine).
@in8442
4 жыл бұрын
Hey Bryan, why do you need second for loop in 33:17 semaphore pattern? The above code is already blocking until all tasks are performed and number of running in parallel goroutines limited by `limit` parameter of buffered channel.
@OrlOnEarth
3 жыл бұрын
The loop is there to wait for the completion of the last worker goroutine. Once the last item of hugeSlice has been read, the last goroutine is started and the main goroutine goes on immediately since the first loop has ended.
@vaskir3695
3 жыл бұрын
The worker pool is genius.
@AFPinerosG
3 жыл бұрын
I know, I wasn't really interested in the Cond stuff, but that workerpool blew my mind. Beautiful.
@OrlOnEarth
3 жыл бұрын
Excellent talk
@SergiiShapoval
4 жыл бұрын
pdf can be found here - drive.google.com/file/d/1nPdvhB0PutEJzdCq5ms6UI58dp50fcAN/view
@cal1686
3 жыл бұрын
What does the slice notatatoin slice[:n:n] do?
@U-D13
3 жыл бұрын
Trigger a syntax error.
@weisanpang7173
Жыл бұрын
Hello Bryan, At 21:21, or page 63 of the presentation, could the q.empty channel be replaced with Select {Default : } instead of Select {case
@f00b4r123
3 жыл бұрын
What's the reason for having "c net.Conn" as an argument of Hijack at 16:45 if it is not used in the body? The same at 17:59 when the function is implemented using channels.
@BryanMillsAtGoogle
2 жыл бұрын
The call to `Hijack` is intended to record that a specific connection has been permanently removed from the pool. The (unused) argument makes it possible to add more diagnostics that don't fit on the slide in order to verify correct use - for example, the Hijack method could check that the specific Conn was actually acquired from the pool, the Release method could verify that a Conn is not returned to the Pool after it has been hijacked, and a finalizer on the Pool could verify that every connection returned by Acquire is ultimately either hijacked or released back to it.
@VitalyZdanevich
3 жыл бұрын
Please consider dark background, will be easier to watch.
@mingyeyang8463
3 жыл бұрын
Sync API, share by communication... Fully usage of Channel can be benefit but challenge...
@ЭразмисАннетский
3 жыл бұрын
Too hard to understand :(
@klarnorbert
2 жыл бұрын
Then you shouldn't be here. Learn basics.
@cristianprieto2604
5 жыл бұрын
While I really like the material he shows, his presentation is awful, he is reading his notes the whole time and it is like a robot repeating what the notes said, it will be hundred times better if we just get the slides and notes and read it from there, seriously, I tried to watch this and it was impossible thanks to his awful presentation style.
@OrlOnEarth
5 жыл бұрын
you're being hyperbolic
@cal1686
3 жыл бұрын
I agree. Just live code it and struggle through so we can learn the real thought process. I don't need to see the guy and a massive gophercon banner either. Fullscreen coding. Code had no comments. If you sat through that you got almost nothing out of it. You have to pause and rewind and run the code in your head line by line. He should be able to run a live example to show what's going on. Print stuff out or run the debugger.
@jasonstewart_ky
2 жыл бұрын
It's not awful. It's Shakespearean! To block, or not to block, THAT is the question.
@feralaca123
3 жыл бұрын
The speaker is smart but the presentation of the different topics was really poor.
@kalekold
2 жыл бұрын
Terrible presentation. Code examples are too confusing and the presenter too robot-like. I've been using Go for years and I had to pause the video multiple times to try and understand what was being said and what was being shown. The code is terrible.
@florenckaf
2 жыл бұрын
Robot-like yes, but the code is actually genius. Come back in couple of years when you've learned more go, then you'll appreciate it.
@kalekold
2 жыл бұрын
@@florenckaf I've been a Go programmer for years and there's nothing genius here.
@cal1686
3 жыл бұрын
TERRIBLE! ... Very difficult to understand. Fullscreen on the code. Put comments on your code or explain it line by line. I don't need to see Gophercon and a PIP of a wooden presenter. The info is good if you rewatch it and pause and rewind multiple times. Presentations are to teach and not show you're smart. Live coding is best.
@florenckaf
2 жыл бұрын
The code doesn't need comments. You need to be able to wrap your head around the possibilities of channels and goroutines, then it's obvious. That's a thing you have to learn, and analysing this code is a good way to do that.
Пікірлер: 44