Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Golang Concurrency
Search
Alex Wheeler
November 16, 2017
93
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Golang Concurrency
Alex Wheeler
November 16, 2017
More Decks by Alex Wheeler
See All by Alex Wheeler
Running Rings Around Rack
alexwheeler
0
88
Rewriting Rack: A Functional Approach
alexwheeler
2
160
Man Computer Symbiosis
alexwheeler
0
150
Flipper
alexwheeler
0
140
Transducers
alexwheeler
0
72
Character Encodings
alexwheeler
0
120
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
KATA
mclloyd
PRO
35
15k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Rails Girls Zürich Keynote
gr2m
96
14k
Side Projects
sachag
455
43k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
460
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
340
Google's AI Overviews - The New Search
badams
0
1.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
Transcript
Golang The Future of VTS
• Yes, there will be Vim.
Background • Developed at Google • Born out of frustration
• 1. efficient compilation • 2. efficient execution • 3. ease of programming
Background • make programming fun again • feel of dynamic
language with type safety • run-time that supports GC, concurrency • lightweight flexible type system
Hello, World
Syntax
implicit typing
Concurrency
BUT FIRST… • Concurrency != Parallelism • Concurrency is about
dealing with lots of things at once. • Parallelism is about doing lots of things at once
goroutine • lightweight thread managed by the go runtime •
little memory (~2kb stack space), can spawn millions if you want • go f() starts function f in a new groutine
None
• “Don't communicate by sharing memory; share memory by communicating.”
- Golang • Communicating Sequential Processes - Tony Hoare
<- channels <- • typed structure through which you can
send/receive values using the channel operator • first class values • block by default
sending to channel
receiving from channel
Time for some code
None
None
Vim Support • https://github.com/fatih/vim-go
Further Learning • https://tour.golang.org • brew install go -- cross-compile-common
• #go-nuts on freenode • @askwheeler