Friday Q&A 2017-10-27: Locks, Thread Safety, and Swift: 2017 Edition
An updated guide to locks, mutexes, and thread safety in Swift, covering modern APIs and best practices for concurrent programming.
An updated guide to locks, mutexes, and thread safety in Swift, covering modern APIs and best practices for concurrent programming.
Explains concurrency issues in Django models and demonstrates solutions using pessimistic locking with select_for_update to ensure data integrity.
Explains Scala's BlockContext for managing thread blocking, including how to prohibit blocking in specific scopes.
Explains a common mistake when using Scala Futures in for-comprehensions and provides a solution to ensure parallel execution.
Explores best practices for managing ExecutionContext in Scala Futures, covering component design patterns for controlling asynchronous execution.
Explains the new Shared Memory proposal for JavaScript, covering its importance, the event loop, and moving towards practical usage.
Explains the CLR Thread Pool's 'Hill Climbing' algorithm for dynamically managing and injecting threads to optimize throughput.
Explains race conditions in Go concurrency and demonstrates how to use mutex locks to ensure thread-safe operations on shared variables.
A reflection on the non-dogmatic, engineering-based decision-making process in Go language design, contrasting it with user debates.
Explains the Producer-Consumer pattern for asynchronous services, including a C# implementation using TPL Dataflow.
A rebuttal to the 'function color' critique of async/await, arguing it's a powerful tool for cooperative multitasking in concurrent programming.
Explains the internal workings of Node.js, focusing on its single-threaded, non-blocking I/O architecture, the Reactor Pattern, and the role of libuv.
Author discusses writing a Go image cropping program for Linux Voice, sharing insights on Go's features and providing code resources.
Explains the advanced Async Continuation Passing Style (ACPS) technique and improved promise linking in Scala 2.12 Futures.
Explains the removal of sun.misc.Unsafe from Scala's Future implementation in version 2.12, replaced with AtomicReference for better compatibility.
Explores improvements to ExecutionContext and BlockContext in Scala 2.12's Future API, focusing on deprecations, new features, and thread management.
Explores missing utility methods in Scala Futures, specifically Future.unit and Future.never, discussing their implementation and use cases.
An analysis of Butler Lampson's 1999 predictions on computer science, comparing what worked then to the state of technology in 2015.
A curated list of resources for learning the Go programming language, from official tutorials to books and community links.
A developer's perspective on missing features in PostgreSQL 9.4, focusing on upsert, JSON performance, and extension management.