Daemons (or Demons) and parent | child threading concepts are orthogonal to each other. In other words, the basis of your question is wrong. Likewise, priorities can be assigned to processes and threads, but priority is orthogonal to the definition of a demon, parent thread, or child thread status.
An application is a program that has been written and becomes a process when it is executed. An application is made up of a process and zero, one, or more threads. The Wikipedia entry on Threads does a good job of explaining the difference between a process and a thread.
- processes are typically independent, while threads exist as subsets of a process
- processes carry considerably more state information than threads, whereas multiple threads within a process share process state as well as memory and other resources
- processes have separate address spaces, whereas threads share their address space
- processes interact only through system-provided inter-process communication mechanisms
- context switching between threads in the same process is typically faster than context switching between processes.
A couple of notes -
- threads may or may not share the same address space, it is OS dependent.
- take the comment about context switching with a grain of salt - this will be OS and chipset dependent.
"Process" and "thread" are sometimes used interchangeably in conversations. It's common to call the process the "parent thread" even though this isn't technically correct since it's a process. Any thread spawning additional threads would be considered parent threads as well.
A daemon is a background process or application, generally without any interactive elements but that's not a hard requirement. A demon can have any priority assigned to it, not just low priority. In addition to the process, a daemon may have some child threads associated with it.
All of these terms are independent of the programming language used to write the application. Some languages provide better support for threads than other languages do.