标准的定义是:进程是线程的容器,一个进程可于一个或者多个线程,它是系统分配资源的基本单位;同一个进程下,线程共享地址空降、已经打开的文件、信号处理函数、报警信号和其他,线程自己只保留程序计数器和栈。
但是很遗憾的,这个只是教科书上的定义,实际情况是每个操作系统实现的操作系统特性不同,实现的方法也不同。就linux2.4内核版本来说,线程实质是一个轻量级进程,每个线程在内核态中对应于一个轻量级进程,所以,线程调度是在核心。这个模型叫做LinuxThreads,作为弥补redhat发起了NPTL计划。详细信息参考网站http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 。而更详细的linux线程实现请参考linux 2.4源码,或者阅读《现代操作系统》(Andrew S. Tanenbaum)第三版。
至于windows下的线程模型,它应该是实现了POSIX1003.1c线程模型标准,具体情况请自己搜索网络。