☰
☰
←Back
←
Next→
→
Contents
Reset Progress
✕
Τι είναι ο Ταυτόχρονος Προγραμματισμός (Conc…
Concurrency vs Parallelism
Το keyword go
Τι είναι μια goroutine — και τι δεν είναι
Deadlock — μια πρώτη γεύση
Τι είναι ένα Channel
Unbuffered vs Buffered channels — η πιο σημα…
Deadlock παράδειγμα — τώρα με channel
VSCode Challenge: Brute-Force Password Crack…
select { case ... }
for-range πάνω σε Channels
Το defer
sync.WaitGroup
sync.Mutex — Αμοιβαίος Αποκλεισμός
Το πρόβλημα: Race Condition
Η λύση με Mutex
sync.RWMutex — Read/Write Mutex
Channels εναντίον Mutexes — Πότε το ένα, πότ…
Rule of Thumb: Το τεστ της ιδιοκτησίας
Η ιδέα του Future / Promise
«The first response wins»
Πριν το τελικό quiz
Προχωρημένα Patterns & Εμβάθυνση
Channel ως σήμα, όχι μεταφορέας δεδομένων
Broadcast (1-to-N) με close()
Channels as Mutex Locks
Channels as Counting Semaphores
Dialogue (Ping-Pong)
Channel Encapsulated in Channel
Check Lengths and Capacities of Channels
Block the Current Goroutine Forever — runtim…
Πρακτικά Σενάρια & Αρχιτεκτονικά Patterns
Pattern 1: Worker Pool (Bounded Concurrency)
VSCode Challenge: Σειρά Αποτελεσμάτων στο Wo…
sync.Map
Pattern 2: Fan-Out & Fan-In (Pipelines)
Pattern 3: Context Cancellation (Timeouts)
Pattern 4: Semaphore (Limit Concurrency)
Pattern 5: Rate Limiting (Time Ticker)
Pattern 6: Or-Done Channel