一.为什么引进线程
我们使用的计算机里的程序可以和其他程序一起打开是因为进程的并发,而对于一个程序例如qq之所以能够边视频边聊天边看空间,就是因为引进了线程,在进程的基础上,更好的提升了OS的并发性,并且能够减小系统的时空开销。
二.线程的实现
1.用户级线程
用户级线程是对于内核来说是透明的,而对用户程序是不透明的,因此我们在进行用户级线程运行的时候,对于内核来说其实还是进程,所以进程还是最小调度单位,并且线程不需要切换到内核空间。但是每当一个用户级线程被阻塞时,除非该线程自己释放,否则其他线程是执行不了的。
2.内核级线程
内核级线程对于os来说是不透明的,而对用户是透明的,内核级线程相比用户级线程来说,就可以充分的发挥多处理机的优势,内核能够同时调度同一个进程的多个线程并行执行,若一个线程被阻塞,其他线程不会被影响。但内核级线程在进行线程切换时需要切换到内核态,所以系统开销比较大,效率比较低。