You are not logged in.
I'm doing a project where I'm looking at different ways of building concurrent data structures. I'm looking for a meaty concurrency problem that I can implement using different concurrency constructs (threads, actors, CSP, STM etc.) in different languages so that I have a better idea of the issues each language and concurrency model brings up. Ideally I want something that is a bit more involved than the dining philosophers problem but that can still be finished relatively quickly. Any ideas?
The Bytebaker -- Computer science is not a science and it's not about computers
Check out my open source software at Github
Offline
An IRC client is relatively simple and requires fairly sophistocated concurrency. You could implement it using coroutines in Scheme, and STM in Haskell.
In Zen they say: If something is boring after two minutes, try it for four. If still boring, try it for eight, sixteen, thirty-two, and so on. Eventually one discovers that it's not boring at all but very interesting.
~ John Cage
Offline
An IRC client is relatively simple and requires fairly sophistocated concurrency.
In what way are the concurrency needs of IRC program more complex than the DPP? Can you even get the sort of resource lock that occurs in the DPP? I remember hacking together a simple local network chat client in Erlang (a CSP language) as an utter no-brainer - it was literally minutes of work.
Last edited by pling (2011-11-22 13:28:09)
Offline
I'm doing a project where I'm looking at different ways of building concurrent data structures. I'm looking for a meaty concurrency problem that I can implement using different concurrency constructs (threads, actors, CSP, STM etc.) in different languages so that I have a better idea of the issues each language and concurrency model brings up. Ideally I want something that is a bit more involved than the dining philosophers problem but that can still be finished relatively quickly. Any ideas?
You could look at some sort of DPP related task that involved disparate tools - eg a factory with 2 presses, 3 drills, and 1 saw. Some jobs might need a press and a drill, others just a saw, some 2 presses..
Offline