How to write a Hello World program for multi-billion users



1 - Some current news, some inspirations

http://www.forbes.com/2010/04/29/moores-law-computing-processing-opinions-contributors-bill-dally.html


2 - Some technical viewpoints




" Functional programming - treats computation as the evaluation of mathematical functions and avoids state and mutable data. "

So what am I thinking? The mutable data means, you have to or "must" control which function takes this data first if there are some functions concurrently refer to it.
E.g:
Normal case:
Integer n = 1;
n = n + 1;
System.out.print(n);
You get 2
Concurrent case:
Integer n = 1;
A thread do n = n + 1;
A another thread do n = n - 1;
2 threads use the shared object "Integer n".

2.1 - The waiting for your dinner

  • What happens when you share a fork with your friend. You have to wait him.
  • Yes, you must use a lot techniques to solve some classic multi-process synchronization problems.
  • One of them is the dining philosophers problem(http://en.wikipedia.org/wiki/Dining_philosophers_problem)
  • I notice the deadlock happens as it describes "The philosophers never speak to each other, which creates a dangerous possibility of deadlock when every philosopher holds a left fork and waits perpetually for a right fork (or vice versa).
  • The cause of this problem is "the shared resources" , here is the fork. We have 5 philosophers , and just 5 forks for them.
  • If each philosopher has 2 forks, so nothing to share, and everyone can take his dinner independently.

2.2 - How to write a Hello World program for multi-billion users

In practice, what happens when you develop a system for multi-billion users. If you use the Google, you will understand what I mean.


View more presentations from xlight

Comments

Popular posts from this blog

Vì sao chúng ta cần ứng dụng Dataism cho đời sống

Các lý thuyết tâm lý học cổ điển về động lực sống của con người

Hướng Dẫn Truy Tìm Đối Tượng Hack hoặc Dùng Nick Clone Facebook Lừa Đảo