Professional - Had to write a program which reads multiple files simultaniously and shoves all the data into multiple sockets which go to different machines to process the data in parallel, after which the data is queried from multiple machines into one result set.
Or
Having multiple machines open a socket to a central server, send information to it via sockets. The server then reads all sockets whenever data is available and shove status updates into a single in-memory data model which is queried once a second by each client connected to the server.
In any case, multithreaded programming is cool. Where else do you get to write test cases that start 1000 threads in a loop 100 times to ensure that funky race conditions have a high probability of occurring.
What's worse is right now I have to write non-multi threaded code which is multi threaded. A wierd thing. Basically there is no way for me to write multithreaded code BUT my events get triggered in parallel so any framework I write that can be accessed by multiple requests all of which can happen at once require a sort of setup, store in session, clone, modify, execute methodology.
Edit: I tried some multithreading in ruby, when porting between different VMs (1.8 vs 1.9 vs jruby) the code started going into deadlocks. Strangely my code was written to be deadlock proof. Anyone know any really good reading on RUBY multithreading / multiprocessing?