简介:

操作系统中引入进程是为了使多个程序并发执行,改善资源利用率,进程是操作系统中进行除处理器外的资源分配和保护的基本单位。线程是进程中能够并发执行的实体,共享进程的主存空间和资源,是处理器调度和分配的基本单位。

线程组成成分:

  1. 线程的唯一标识符及线程状态信息。
  2. 未运行时所保存的线程上下文,可以把线程看成进程中的一个独立的程序计数器。
  3. 核心栈,在核心态工作时保存参数,在函数调用时的返回地址等。
  4. 用于存放线程局部变量和用户栈的私有存储区。

线程分类

  • 内核级线程
    线程的管理工作由内核完成,优点是:速度快,系统执行效率高。缺点,用户态和内核态模式切换开销大。
  • 用户级线程
    线程的管理由应用程序管理,优点,线程切换无需使用内核特权,可以使用特定的调度算法。缺点:用户级线程阻塞会引起整个进程的阻塞。
  • 混合式线程
    Solaris即支持用户级也支持内核级线程。

JAVA中的线程分类

  • 守护线程
    为用户线程服务的线程:如垃圾回收,内存管理等线程。新建的线程最初都是用户级线程,可以通过setDaemon()方法设置成守护线程。
  • 用户线程
    一般用户使用的线程,通过继承Thread类后者实现Runnable接口等实现的线程。