I assume you are talking about this article: http://en.wikipedia.org/wiki/Kernel_thread
According to this article, in a single-threaded application, since you have only one thread by definition, it must be a kernel thread, otherwise it will not be assigned and will not start.
If there were several threads in the application, this will depend on how user-mode multithreading is implemented (kernel threads, fibers, etc.).
It is important to note that this will be a kernel thread running in user mode when the application code is executed (unless you make a system call). Any attempt to execute a protected instruction while working in user mode will result in an error, which will ultimately lead to the completion of the process.
So, the kernel thread here should not be confused with the supervisor / privilege mode and kernel code.
You can execute kernel code, but first you must go into the system call.
source share