RSS feed [root] /concurrency /design /weblog




login:

password:

title search:




 


Thu Jan 26 20:48:16 HKT 2012

concurrency



(google search) (amazon search)
second
download zip of files only

Thu Jan 26 20:48:16 HKT 2012 From /weblog/design/concurrency

thread


Intel Guide for Developing Multithreaded Applications - http://software.intel.com[..]or-developing-multithreaded-applications

Difference ways to stop a thread - http://www.ddj.com[..]ept_url=/hpc-high-performance-computing/

Interesting, I am not sure if I agree, but chrome ( which use fork ) are really cool in performance:
There’s another problem with Unix programming in Ruby that I’ll just touch on briefly: Java people and Windows people. They’re going to tell you that fork(2) is bad because they don’t have it on their platform, or it sucks on their platform, or whatever, but it’s cool, you know, because they have native threads, and threads are like, way better anyways.

Fuck that.

Don’t ever let anyone tell you that fork(2) is bad. Thirty years from now, there will still be a fork(2) and a pipe(2) and a exec(2) and smart people will still be using them to solve hard problems reliably and predictably, just like they were thirty years ago.

MRI Ruby people need to accept, like Python (you have seen multiprocessing, yes?), that Unix processes are one of two techniques for achieving reliable concurrency and parallelism in server applications. Threads are out. You can use processes, or async/events, or both processes and async/events, but definitely not threads. Threads are out.
http://tomayko.com/writings/unicorn-is-unix

1x1 win M*N - http://binkley.blogspot.com/2012/01/1-1-beats-n-m.html

(google search) (amazon search)


Sun Nov 13 10:38:37 HKT 2011 From /weblog/design/concurrency

lock


10-ways-to-reduce-lock-contention-in-threaded-programs - http://www.thinkingparallel.com[..]ce-lock-contention-in-threaded-programs/

Discussion about lock the form and prevent 2 user edit it in the same time and currupt the object, what is the possible drawback. - http://www.dcmanges.com[..]-optimistic-locking-isnt-a-silver-bullet

futexes - http://en.wikipedia.org/wiki/Futex http://groups.google.com[..]ds/browse_thread/thread/3c3608a779dc6731

Spinning - http://www.1024cores.net[..]ome/lock-free-algorithms/tricks/spinning

Locks for rarely changed data, sound like good suggestion - https://groups.google.com[..]pic/comp.programming.threads/dyrbRKsj4gw

Try to use non-blocking approach if possible - http://mechanical-sympathy.blogspot.com[..]1/locks-condition-variables-latency.html

(google search) (amazon search)


Sun May 15 02:11:54 HKT 2011 From /weblog/design/concurrency

deadlock


Deadlock detector sample - http://www.onjava.com/lpt/a/5246 http://www.javaspecialists.eu/archive/Issue130.html http://www.javaspecialists.eu/archive/Issue147.html

Deadlock in J2EE, explaining deadlock in various place, e.g. DB, VM, code,... - http://jdj.sys-con.com/read/204688_p.htm

A blog comment about database deadlock very detail - http://softarc.blogspot.com[..]2007/04/java-wish-list-2-retry-code.html

Technique to prevent deadlock: Automatic Lock Releases, Timeout, automatic detection - http://onjava.com/lpt/a/5246

(google search) (amazon search)



Wed Dec 09 15:27:52 HKT 2009 From /weblog/design/concurrency

queue


Fast synchronization between a single producer and single consumer - http://www.bluebytesoftware.com[..]eenASingleProducerAndSingleConsumer.aspx

Lock free queue idea. - http://groups.google.com[..]read/thread/82066179448783da?hl=en&pli=1

(google search) (amazon search)


Tue Nov 13 16:06:21 HKT 2007 From /weblog/design/concurrency

non-blocking


A few example of writing non-blocking thread safe method, mostly using the concept of Idempotency

http://mailinator.blogspot.com[..]readerwriter-in-java-in-nonblocking.html
http://www-128.ibm.com[..]works/java/library/j-jtp04186/index.html
http://blogs.azulsystems.com/cliff/2007/03/a_nonblocking_h.html
http://lalitpant.blogspot.com/2007/05/efficient-concurrency.html
http://en.wikipedia.org/wiki/Lock-free_and_wait-free_algorithms

Not exactly related, some project about non-blocking IO
http://twistedmatrix.com/trac/
https://grizzly.dev.java.net/

(google search) (amazon search)


Thu Sep 13 02:01:25 HKT 2007 From /weblog/design/concurrency

Transactional memory


Someone say the basic idea behind transactional memory is that memory is shared by all the threads in a read-only manner. Threads modify data by "committing" objects to shared memory. If a thread commits on top of a dirty object then it has to "rollback" and retry.

http://research.sun.com[..]007/2007-08-13_transactional_memory.html
http://www.hpcwire.com/hpc/1196095.html

(google search) (amazon search)