posted 12 years ago
Yes, I agree--it will work, but it's a pointless problem statement. Note also that you don't need the t3.join(), since the problem statement says nothing about waiting for T3 to end.
A more reasonable problem statement--one that shows the actual practical use of join(), would be something like: "You have T1, T2, and T3. T1 and T2 can execute concurrently, but T3 has to wait for both of them before it can run." Or even, "You have two threads T1 and T2 that are allowed to run concurrently, but your main thread must wait until they both finish before it can continue with its work."
Go ahead and give one or both of those a try.
What we're modelling with those is something like this: "I want to bake a cake. Joe, you go to the grocery store and get eggs, milk, flour, etc. Mary, you go to the housewares store and get a mixer, measuring cups, and a cake pan. I'll start baking when you both get back." Joe and Mary can do their jobs independently of and in parallel to each other, but I have to wait until they both complete their tasks before I can start doing anything.