Could you clarify the distinctions between a 'fork' and a 'join' in the context of multithreaded systems?

Free for the first 3 answer contributors

Interview question asked to Design Verification Engineers interviewing at Adobe, AMD, Audi and others: Could you clarify the distinctions between a 'fork' and a 'join' in the context of multithreaded systems?.