924
Lectures Watched
Since January 1, 2014
Since January 1, 2014
- A History of the World since 1300 (68)
- History of Rock, 1970-Present (50)
- A Brief History of Humankind (48)
- Chinese Thought: Ancient Wisdom Meets Modern Science (35)
- The Modern World: Global History since 1760 (35)
- The Bible's Prehistory, Purpose, and Political Future (28)
- Introduction aux éthiques philosophiques (27)
- Jesus in Scripture and Tradition (25)
- Roman Architecture (25)
- Sexing the Canvas: Art and Gender (23)
- Descubriendo la pintura europea de 1400 a 1800 (22)
- Introduction aux droits de l'homme (19)
- Buddhism and Modern Psychology (18)
- Calvin: Histoire et réception d'une Réforme (17)
- The Ancient Greeks (16)
- À la découverte du théâtre classique français (15)
- The French Revolution (15)
- Letters of the Apostle Paul (14)
- Key Constitutional Concepts and Supreme Court Cases (14)
- Christianisme et philosophie dans l'Antiquité (14)
- Egiptología (12)
- Western Music History through Performance (10)
- The Rise of Superheroes and Their Impact On Pop Culture (9)
- The Great War and Modern Philosophy (9)
- Alexander the Great (9)
- Greek and Roman Mythology (9)
- Human Evolution: Past and Future (9)
- Phenomenology and the Conscious Mind (9)
- Masterpieces of World Literature (8)
- Villes africaines: la planification urbaine (8)
- Greeks at War: Homer at Troy (7)
- Pensamiento Científico (7)
- MongoDB for Node.js Developers (7)
- Fundamentos de la escritura en español (7)
- Introduction to Psychology (7)
- Programming Mobile Applications for Android (7)
- The Rooseveltian Century (6)
- Karl der Große - Pater Europae (6)
- Fake News, Facts, and Alternative Facts (6)
- Reason and Persuasion Through Plato's Dialogues (6)
- The Emergence of the Modern Middle East (6)
- A Beginner's Guide to Irrational Behavior (6)
- Lingua e cultura italiana: avanzata (6)
- L'avenir de la décision : connaître et agir en complexité (5)
- Understanding Einstein: The Special Theory of Relativity (5)
- Dinosaur Paleobiology (5)
- Exploring Beethoven's Piano Sonatas (5)
- War for the Greater Middle East (4)
- Emergence of Life (4)
- Introduction to Public Speaking (4)
- The Kennedy Half Century (4)
- Problèmes métaphysiques à l'épreuve de la politique, 1943-1968 (4)
- Designing Cities (4)
- Western Civilization: Ancient and Medieval Europe (3)
- Paleontology: Early Vertebrate Evolution (3)
- Orientierung Geschichte (3)
- Moons of Our Solar System (3)
- Introduction à la philosophie de Friedrich Nietzsche (3)
- Devenir entrepreneur du changement (3)
- La Commedia di Dante (3)
- History of Rock and Roll, Part One (3)
- Formation of the Universe, Solar System, Earth and Life (3)
- Initiation à la programmation en Java (3)
- La visione del mondo della Relatività e della Meccanica Quantistica (3)
- The Music of the Beatles (3)
- Analyzing the Universe (3)
- Découvrir l'anthropologie (3)
- Postwar Abstract Painting (3)
- The Science of Religion (2)
- La Philanthropie : Comprendre et Agir (2)
- Highlights of Modern Astronomy (2)
- Materials Science: 10 Things Every Engineer Should Know (2)
- The Changing Landscape of Ancient Rome (2)
- Lingua e letteratura in italiano (2)
- Gestion des aires protégées en Afrique (2)
- Géopolitique de l'Europe (2)
- Introduction à la programmation en C++ (2)
- Découvrir la science politique (2)
- Our Earth: Its Climate, History, and Processes (2)
- The European Discovery of China (2)
- Understanding Russians: Contexts of Intercultural Communication (2)
- Philosophy and the Sciences (2)
- Søren Kierkegaard: Subjectivity, Irony and the Crisis of Modernity (2)
- The Fall and Rise of Jerusalem (2)
- The Science of Gastronomy (2)
- Galaxies and Cosmology (2)
- Introduction to Classical Music (2)
- Art History for Artists, Animators and Gamers (2)
- L'art des structures 1 : Câbles et arcs (2)
- Russian History: from Lenin to Putin (2)
- The World of Wine (1)
- Wine Tasting: Sensory Techniques for Wine Analysis (1)
- William Wordsworth: Poetry, People and Place (1)
- The Talmud: A Methodological Introduction (1)
- Switzerland in Europe (1)
- The World of the String Quartet (1)
- Igor Stravinsky’s The Rite of Spring (1)
- El Mediterráneo del Renacimiento a la Ilustración (1)
- Science of Exercise (1)
- Социокультурные аспекты социальной робототехники (1)
- Russian History: from Lenin to Putin (1)
- The Rise of China (1)
- The Renaissance and Baroque City (1)
- Visualizing Postwar Tokyo (1)
- In the Night Sky: Orion (1)
- Oriental Beliefs: Between Reason and Traditions (1)
- The Biology of Music (1)
- Mountains 101 (1)
- Moral Foundations of Politics (1)
- Mobilité et urbanisme (1)
- Introduction to Mathematical Thinking (1)
- Making Sense of News (1)
- Magic in the Middle Ages (1)
- Introduction to Italian Opera (1)
- Intellectual Humility (1)
- The Computing Technology Inside Your Smartphone (1)
- Human Origins (1)
- Miracles of Human Language (1)
- From Goddard to Apollo: The History of Rockets (1)
- Hans Christian Andersen’s Fairy Tales (1)
- Handel’s Messiah and Baroque Oratorio (1)
- Theater and Globalization (1)
- Gestion et Politique de l'eau (1)
- Une introduction à la géographicité (1)
- Frontières en tous genres (1)
- Créer et développer une startup technologique (1)
- Découvrir le marketing (1)
- Escribir para Convencer (1)
- Anthropology of Current World Issues (1)
- Poetry in America: Whitman (1)
- Introducción a la genética y la evolución (1)
- Shakespeare: On the Page and in Performance (1)
- The Civil War and Reconstruction (1)
- Dinosaur Ecosystems (1)
- Développement durable (1)
- Vital Signs: Understanding What the Body Is Telling Us (1)
- Imagining Other Earths (1)
- Learning How to Learn (1)
- Miracles of Human Language: An Introduction to Linguistics (1)
- Web Intelligence and Big Data (1)
- Andy Warhol (1)
- Understanding the Brain: The Neurobiology of Everyday Life (1)
- Practicing Tolerance in a Religious Society (1)
- Subsistence Marketplaces (1)
- Physique générale - mécanique (1)
- Exercise Physiology: Understanding the Athlete Within (1)
- Introduction to Mathematical Philosophy (1)
- What Managers Can Learn from Great Philosophers (1)
- A la recherche du Grand Paris (1)
- The New Nordic Diet (1)
- A New History for a New China, 1700-2000 (1)
- The Magna Carta and its Legacy (1)
- The Age of Jefferson (1)
- History and Future of Higher Education (1)
- Éléments de Géomatique (1)
- 21st Century American Foreign Policy (1)
- The Law of the European Union (1)
- Design: Creation of Artifacts in Society (1)
- Introduction to Data Science (1)
- Configuring the World (1)
- From the Big Bang to Dark Energy (1)
- Animal Behaviour (1)
- Programming Mobile Services for Android Handheld Systems (1)
- The American South: Its Stories, Music, and Art (1)
- Care of Elders with Alzheimer's Disease (1)
- Contagious: How Things Catch On (1)
- Constitutional Law - The Structure of Government (1)
- Narratives of Nonviolence in the American Civil Rights Movement (1)
- Christianity: From Persecuted Faith to Global Religion (200-1650) (1)
- Age of Cathedrals (1)
- Controversies of British Imperialism (1)
- Big History: From the Big Bang until Today (1)
- Bemerkenswerte Menschen (1)
- The Art of Poetry (1)
- Superpowers of the Ancient World: the Near East (1)
- America Through Foreign Eyes (1)
- Advertising and Society (1)
Hundreds of free, self-paced university courses available:
my recommendations here
my recommendations here
Peruse my collection of 275
influential people of the past.
influential people of the past.
View My Class Notes via:
Receive My Class Notes via E-Mail:
Contact Me via E-Mail:
edward [at] tanguay.info
Notes on video lecture:
Concurrency Challenges
Notes taken by Edward Tanguay on June 24, 2014 (go to class or lectures)
Choose from these words to fill the blanks below:
operations, concurrency, actual, response, queue, background, simultaneously, core, SQLite, middleware, POSIX, low, communication, software, vision, quad, RenderScript
prime reason for concurrency
leveraging advances in hardware and software
it's hard to buy a computing device that has just one
today there are even -core Android phones
historically
event driven architecture
one thread
for blocking operations, had to post on message , then handle it later on an event loop
awkward to program
hard to optimize
used the reactor pattern
now operating system and have better concurrency support
Android provides several concurrency frameworks which enable multiple threads to perform long-running computations in the
this maps efficiently onto multiple cores
these background operations can block independently of the UI thread
using these frameworks effectively requires knowledge of concurrency patterns
e.g. worker thread pattern:
increasing performance
via parallelism
overlaps computation and mechanisms
background threads that download images can run in parallel with each other, and with a thread that interacts with the user
use the framework
targeted at image processing, computational photography, or computer
improve responsiveness
even with one core, concurrency can be used to improve perceived time
e.g. ensures that the user interface doesn't ignore input while other are running
challenges
accidental complexities
written in programs like C
pthread
low-level and error-prone data types
casting disable compile-time type checking, causes errors
some types are not compatible on other platforms, e.g. non- platforms
most operating systems today have these kinds of problems when -level programming languages like C are used
developers use tools that aren't set up to handle
you need tools that enable you to drill down and look inside your to figure out what is happening
the behavior you see in the debugger doesn't necessarily reflect the behavior in the software
inherent complexities
scheduling and synchronization
the order and time that operations are performed
ensure that multiple concurrent threads don't execute in criticial sections of a program at the same time
analogy:
air traffic controllers share runway resource for mulitple planes
likewise, Android needs to synchronize access to the contact database
ensures that threads are given proper access to system resources
deadlock
two or more competing actions are waiting for the other to finish and so neither ever do
need to be identified and removed
heisenbug
bugs that change their behavior when observed
you may use a debugger to step through one thread while other threads are running
Vocabulary:
heisenbug, n. a software bug that seems to disappear or alter its behavior when one attempts to study it ⇒ "Heisenbugs occur because common attempts to debug a program, such as inserting output statements or running it in a debugger, usually modify the code, change the memory addresses of variables and the timing of its execution." |