procedure main(argc, argv[]) shared next_thread := 0 shared thread_count := integer(argv[1]) for thread_number := 0 to thread_count do create_thread(greet, thread_number) // thread team end for print "Hello from main thread" end procedure procedure greet(thread_number) // Wait until it is my turn while next_thread < thread_number do // busy-wait end while print "Hello from secondary thread", thread_number, " of ", thread_count // Allow subsequent thread to do the task next_thread := next_thread + 1 end procedure