I was trying to get a multithreaded server to run on a uCLinux machine. However, the fork() was not supported with UCLinux and suggests the use of vfork().

My questions are:
1) Can we use exec() commands with vfork()? What are exec commands exactly?

2) Is it really possible to build a multithreaded server with vfork? Since it suspends the parents, I don't think that's possible. In fact, since the parent is suspended, we can surely rule out the possibility of concurrency. So what's the purpose of having vfork() in this case?