Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS240: Advanced Programming Concepts

Similar presentations


Presentation on theme: "CS240: Advanced Programming Concepts"— Presentation transcript:

1 CS240: Advanced Programming Concepts
Screencast #2

2 Multi-Threaded Execution and AsyncTask
An Introduction

3 What is a computer program?
A collection of instructions and data A set of related tasks that we desire the computer to perform for us

4 Concurrent vs. Parallel Processing
Concurrent or “Overlapped” execution Multiple processes are accomplishing work over a period of time, though not necessarily executing at the same moment (i.e. interleaved execution) Parallel execution Multiple processes are in execution at the same moment

5 CPUs can take advantage of instruction level parallelism at runtime…
1: A = 6 + B; 2: C = A / 2; 3: D = C * 5; 4: E = A * B; 5: F = B / 2; Pipelining Superscalar (i.e. multi-issue pipeline) Out of order execution Etc.

6 CPU’s have more difficulty taking advantage of “task” level parallelism – Enter Multiprocessing …
Multiprocessing (OS enabled) Multiple processes take turns utilizing the CPU (A program will be comprised of one or more processes) Processes that ask to do something that takes a while (such as retrieve data from a large-but-slow storage device) are blocked until the requested data etc. is ready – they surrender some or all of their turn while their request is being processed, allowing a process that is ready to make use of the time… Multi-core + multiprocessing: Same idea spread across multiple cores… A process that is capable of doing more than one of its tasks at a time does not benefit from multi-processing alone

7 Multiprocessing cont. Limitations: Human partitioning is needed…
Processes are “heavy” Swapping them in and out requires a complete context switch Inter-process communication is expensive compared to intra-process communication Diminishing returns… Missed opportunities - Programs/processes may be capable of doing other portions of their work while waiting on a request that causes them to be blocked/stalled

8 For example… CPU’s cannot identify tasks, nor effectively determine when, where, or how synchronization can or should be performed at the task level

9 Threads: A way of splitting a process into “mini-processes”
On single core CPU If one thread “blocks” other threads may utilize its CPU time Shared memory (communication is efficient) No need for a full context switch On multiple cores Multiple threads may be executing in parallel on multiple cores *We are ignoring a lot of details here, such as the mechanism for passing information between threads 1 and 2, and how this information is synchronized etc. but our purpose at the moment is simply to understand the main idea…

10 Android Apps Always have at least one thread (duh) – the UI thread
Responds to asynchronous events: Touch… System events… Etc. Android doesn’t like to be ignored by this thread…: “App isn’t responding. Do you want to close it?” Accessing the internet is slow…. Android doesn’t allow us to access the internet from the UI thread….

11

12 Using the AsyncTask Class to run background tasks in Android
Intended for short, single execution tasks. Use other approaches if you need long running threads in the background. Perfect for our purposes in Family Map Login to the server… Retrieve appropriate data… Extend this class to execute a task on a separate thread in the background onPreExecute() doInBackground() onProgressUpdate() onPostExecute()

13

14 A closer look…

15 Rules To Observe… “Threading rules
There are a few threading rules that must be followed for this class to work properly: The AsyncTask class must be loaded on the UI thread. This is done automatically as of JELLY_BEAN. The task instance must be created on the UI thread. execute(Params...) must be invoked on the UI thread. Do not call onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...) manually. The task can be executed only once (an exception will be thrown if a second execution is attempted.)” [ ]


Download ppt "CS240: Advanced Programming Concepts"

Similar presentations


Ads by Google