Concurrency is a property of systems in which several processes are executing at the same time.
58
votes
10answers
4k views
How to explain why multi-threading is difficult
I am a fairly good programmer, my boss is also a fairly good programmer. Though he seems to underestimate some tasks such as multi-threading and how difficult it can be (I find it very difficult for ...
31
votes
7answers
2k views
Are there deprecated practices for multithread and multiprocessor programming that I should no longer use?
In the early days of FORTRAN and BASIC, essentially all programs were written with GOTO statements. The result was spaghetti code and the solution was structured programming.
Similarly, pointers can ...
26
votes
16answers
4k views
Modern programming language with intuitive concurrent programming abstractions
I am interested in learning concurrent programming, focusing on the application/user level (not system programming). I am looking for a modern high level programming language that provides intuitive ...
24
votes
10answers
1k views
Concurrency: How do you approach the design and debug the implementation?
I've been developing concurrent systems for several years now, and I have a pretty good grasp on the subject despite my lack of formal training (i.e. no degree). There's a few new languages that have ...
22
votes
5answers
3k views
Is object pooling a deprecated technique?
I am very familiar with the concept of object pooling and I always try to use it as much as possible.
Additionally I always thought that object pooling is the standard norm as I have observed that ...
20
votes
4answers
2k views
Should I stick with or abandon Python to deal with concurrency?
I have a 10K LOC project written in Django with quite a deal of Celery (RabbitMQ) for asynchronicity and background jobs where needed, and have come to the conclusion that parts of the system would ...
18
votes
3answers
1k views
Why five dining philosophers?
I was wondering why the Dining philosophers problem is based on a five philosophers case. Why not four?
I guess that we can observe all unpleasant issues that can occur when discussing five ...
16
votes
2answers
463 views
Why does shared state degrade performance?
I've been working under the share-nothing principle of concurrent programming. Essentially, all my worker threads have immutable read-only copies of the same state which is never shared between them ...
15
votes
3answers
2k views
Why is multithreading often preferred for improving performance?
I have a question, it's about why programmers seems to love concurrency and multi-threaded programs in general.
I'm considering 2 main approaches here:
an async approach basically based on signals, ...
14
votes
3answers
638 views
What is your thoughts about the Actor Model?
The Actor Model that is used by Erlang seem to be a very different way to do concurrent programming. What is your thoughts on the Actor Model? Will it be a popular solution for concurrency?
13
votes
7answers
779 views
Why should I know concurrent programming?
Concurrent programming is quite difficult to me: even looking at a basic slide seems challenging to me. It seems so abstract.
What are the benefits to knowing Concurrent programming concepts well? ...
11
votes
2answers
2k views
Are these advanced/unfair interview questions regarding Java concurrency? [closed]
Here are some questions I've recently asked interviewees who say they know Java concurrency:
Explain the hazard of "memory visibility" - the way the JVM can reorder certain operations on variables ...
11
votes
4answers
2k views
How does a movie theater seat booking system prevent multiple users from reserving the same seats?
In the movie theatre I go to they have ticket kiosks that allow you to select the seats you want; they also have a website that does the same (the website also has a countdown timer of like 30 secs in ...
10
votes
3answers
2k views
Why not Green Threads?
Whilst I know questions on this have been covered already (e.g. http://stackoverflow.com/questions/5713142/green-threads-vs-non-green-threads), I don't feel like I've got a satisfactory answer.
The ...
10
votes
4answers
377 views
Why is implicit parallelism/concurrency not more widespread?
Implicit parallelism^ can take a big burden away from many programmers, placing it on the computer. So... why is it is not more widespread at present?
^ Implicit parallelism is to make a computer be ...
10
votes
4answers
619 views
What are the best resources for learning about concurrency and multi-threaded applications?
I realised I have a massive knowledge gap when it comes to multi-threaded applications and concurrent programming. I've covered some basics in the past, but most of it seems to be gone from my mind, ...
10
votes
3answers
2k views
UML Diagrams of Multi-Threaded Applications
For single-threaded applications I like to use class diagrams to get an overview of the architecture of that application. This type of diagram, however, hasn’t been very helpful when trying to ...
8
votes
6answers
499 views
Next in Concurrency
For past year I have been working a lot on concurrency in Java and have build and worked on many concurrent packages. So in terms of development in the concurrent world, I am quite confident. Further ...
8
votes
2answers
748 views
Where should I start on a large concurrent programming assignment?
My task is to implement a distributed semaphore system (links to description) and an application for it. I will be using Java sockets, and it will use watermark arrays and priority queues (not sure ...
8
votes
4answers
726 views
The difference between “concurrent” and “parallel” execution?
What is the difference between the terms concurrent and parallel execution? I've never quite been able to grasp the distinction.
The tag defines concurrency as a manner of running two processes ...
7
votes
4answers
538 views
scalablity of Scala over Java
I read an article that says Scala handles concurrency better than Java.
http://www.theserverside.com/feature/Solving-the-Scalability-Paradox-with-Scala-Clojure-and-Groovy
...the scalability ...
7
votes
1answer
234 views
In what meaningful ways does Erlang prevent race conditions in concurrent programming?
Reading about concurrency in Erlang, reminds me of the Akka concurrency toolkit. Both give you tools to prevent or limit race conditions. But you can send links to mutable data to other processes ...
7
votes
2answers
209 views
Parallelism implies concurrency but not the other way round right?
I often read that parallelism and concurrency are different things. Very often the answerers/commenters go as far as writing that they're two entirely different things. Yet in my view they're related ...
7
votes
1answer
468 views
Conceptually what does it mean when it is said that each thread gets its own stack?
I have been reading Java Concurrency in Practice by Brian Goetz and inside the section Stack Confinement it is mentioned that each thread gets its own stack and so local variables are intrinsically ...
7
votes
2answers
295 views
Is my description of the actor model right?
If I understood, the actor model is just like the object model, but with a few differences:
EVERY object spawns it's own separate thread and its not a problem even when you have thousands of ...
7
votes
5answers
226 views
When developing a piece of software, when do you start thinking/designing the concurrent sections?
Following along with the principle of not optimizing too early, I'm wondering at what point in the design / development of a piece of software do you start thinking about the concurrency ...
7
votes
2answers
193 views
Are Concurrency Abstractions Emulating UNIX Processes?
OK, I was pondering this today, and I've come to ask for completely subjective and bias opinions on it. Paradoxically, despite this, I don't think it's flame-war fodder either. I think there is room ...
7
votes
3answers
259 views
Optimistic work sharing on sparsely distributed systems
What would a system like BOINC look like if it were written today?
At the time BOINC was written, databases were the primary choice for maintaining a shared state and concurrency among nodes.
Since ...
6
votes
4answers
384 views
Functional Programming: right ideas about concurrency and state?
FP proponents have claimed that concurrency is easy because their paradigm avoids mutable state. I don't get it.
Imagine we're creating a multiplayer dungeon crawl (a roguelike) using FP where we ...
6
votes
4answers
2k views
Problems of multiple threads sharing/accessing the same data
I have been researching into when data is being accessed or shared by multiple threads within Java. And looking into the problems such as:
Thread Interference
Memory Consistency
Deadlock
Starvation
...
6
votes
4answers
2k views
Real world usage of DelayQueue
What would be a real world usage of DelayQueue, what common problem it was design to solve?
6
votes
3answers
458 views
Rendezvous in Ada
In a test I was asked:
What elements present in the general form of a rendezvous are not present in Ada language?
I was a bit stumbled as I thought Ada fully supported rendezvous. Now it seems ...
6
votes
2answers
210 views
Would Task-based programming in C++ require new language standard features?
So I saw this video on Youtube with all these C++ masters on GoingNative 2012 : Interactive panel where everybody could ask the questions.
This is the video I was talking about: GoingNative 2012 - ...
5
votes
3answers
432 views
How to avoid halting of the JVM due to a deadlock in java?
I have read many websites talking about how to avoid and how to design etc. I completely understand those strategies.
My question is based on the following preconditions:
You have a company with ...
5
votes
3answers
472 views
how to verify ConcurrentHashMap is threadsafe?
As the jdk doc said, ConcurrentHashMap is thread safe and it doesn't block multiple thread read. It is not necessary to doubt that since it was under many and restricted test. But I just curious how ...
5
votes
6answers
399 views
What is the *correct* term for a program that makes use of multiple hardware processor cores?
I want to say that my program is capable of splitting some work across multiple CPU cores on a single system. What is the simple term for this? It's not multi-threaded, because that doesn't ...
5
votes
3answers
418 views
What are the recommended resources for learning about the Actor model of concurrent systems?
The Actor concurrency model is clearly gaining favor. Is there a good book that presents the patterns and pitfalls of the model? I am thinking about something that would discuss, for instance, the ...
5
votes
2answers
545 views
Can Clojure's thread-based agents handle c10k performance?
I'm writing a c10k-style service and am trying to evaluate Clojure's performance. Can Clojure agents handle this scale of concurrency with its thread-based agents? Other high performance systems ...
5
votes
5answers
837 views
What is a comprehensive book on concurrent programming?
I'm looking for a book with a broad, comprehensive overview of concurrent programming. A lot of books focus on one language, platform, or concurrency technique. I'm more interested in a book that ...
5
votes
2answers
226 views
Good reasons for destroying mutexes with waiting threads
I'd like to see some valid examples of needing to let a thread enter a locked, non-re entrant mutex, then destroying the mutex (which supposedly terminates the thread).
I can't think of any good ...
4
votes
3answers
653 views
What's the opposite of parallel/concurrent execution?
In my program, I give the ability to execute certain code either as parallel or non-parallel. I don't know what to call the non-parallel option though. Is Linear a good term?
What would be the best ...
4
votes
8answers
434 views
When should I use parallelism?
After asking this question, I got to realize that parallelism may not always be good.
So far I can see that parallelism (under c#) is
A little complicated code-wise
Will probably insert some ...
4
votes
2answers
292 views
Help me understand a part of Java Language Specification
I'm reading part 17.2.1 of Java language specification: http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.2.1
I won't copy a text, it's too long, but I would like to know, why for ...
4
votes
2answers
1k views
Python threading vs. multiprocessing: Should I learn one before the other?
I'm looking to dive into multithreading or multiprocessing in Python. Question: should I be learning one before the other (for any reason)? If so, which one and why?
I've read the pro's and con's in ...
4
votes
2answers
192 views
What is a good script language for writing server administration tasks? [closed]
I am administering hundreds of RHEL servers. There are many daily tasks to perform. Right now I am working with bash scripting and python. I was wondering if other languages such as Erlang, Lua, Ruby, ...
4
votes
2answers
121 views
How much configurability to give to users regarding concurrency?
This question is a narrowing-down of these related questions:
How much effort should we spend to programming for multiple cores?
Concurrency: How do you approach the design and debug the ...
4
votes
2answers
1k views
Looking for a distributed locking pattern
I need to come up with a custom recursive object locking mechanism\pattern for a distributed system in C#. Essentially, I have a multi-node system. Each node has exclusive write permissions over ...
4
votes
1answer
394 views
Selective mutual exclusion in Dining Philosophers and Readers and Writers problem
I've been reading about selective mutual exclusion (SME). The idea I got is that if a process competes for its resources against a subset of all the other process instead of competing with all the ...
3
votes
2answers
212 views
I have data that sends in “bursts” of 100 records with a significant delay. How do I structure my classes for multithreading?
My datasource sends information in 100 batches of 100 records with a delay of 1 to 3 seconds between batches.
I would like to start processing data as soon as it's received, but I'm not sure how to ...
3
votes
2answers
308 views
How are you using CFThread in ColdFusion Applications? [closed]
I'm presenting on Concurrency in ColdFusion at CFObjective this year, and I'd like to hear how you're using CFThread in your ColdFusion applications.
In addition, what problems have you had while ...