The Safari for iOS has some very interesting perspective effect
built-in. You can check that when you’ve multiple tabs open. How about
building something like that? Those views are clearly UIView right? You
can see the web content rendered, they have cross buttons. The content
even periodically updates without launching the app using the background
services probably.
We’ve explored so much with our concurrency experiments and yet there’s
one fundamental topic we haven’t touched so far. Deadlocks. Whenever we
think of concurrency, we can’t help thinking of locks for protecting
shared resources, managing synchronization and what not. But, as Uncle
Ben has said, with great power comes great responsibility, similarly
with great locks comes great deadlocks.
Picture the scenario: You’re on the phone with your friend, when
suddenly he say ‘Hey! Hold on. I think I’m getting another call’ and
before you can say anything, he puts you on hold. Now, you have no idea
whether to hang up, or wait. Your friend could be coming back in 3
seconds or 3 hours you’ve no idea. Wouldn’t it be great if your phone
service provided you a mechanism that whenever you’re put on hold, you
can freely disconnect and whenever your friend disconnects the other
call, you immediately get a ring. Let’s talk about managing
synchronization between threads.
In continuation with the last week’s
experiment on protecting shared data in a
concurrent system, let’s look at how we can make it work using C++ and
threads.