Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
245 views
in Technique[技术] by (71.8m points)

c++ - How to synchronise threads without using any synchronisation methods?

I was asked in an interview that it is required to print numbers 1 to 3 in a sequential order by 3 threads without using any synchronisation techniques.

I think that we can access the thread id to find out which thread it is and keep a flag associated with this thread in a structure which can be set to true this thread in currently accessing the data.

Interviewer laughed at this idea. So obviously it is wrong.

What can be the way to achieve this task?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Create thread A
Thread A prints '1'
Thread A creates thread B and exits
Thread B prints '2'
Thread B creates thread C and exits
Thread C prints '3' and
exits

No explicit synchro required, prints 1,2,3 in order using three threads, is a totally pointless exercise.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...