【JMM】线程之简介与分类
简介:
操作系统中引入进程是为了使多个程序并发执行,改善资源利用率,进程是操作系统中进行除处理器外的资源分配和保护的基本单位。线程是进程中能够并发执行的实体,共享进程的主存空间和资源,是处理器调度和分配的基本单位。
线程组成成分:
- 线程的唯一标识符及线程状态信息。
- 未运行时所保存的线程上下文,可以把线程看成进程中的一个独立的程序计数器。
- 核心栈,在核心态工作时保存参数,在函数调用时的返回地址等。
- 用于存放线程局部变量和用户栈的私有存储区。
线程分类
- 内核级线程
线程的管理工作由内核完成,优点是:速度快,系统执行效率高。缺点,用户态和内核态模式切换开销大。 - 用户级线程
线程的管理由应用程序管理,优点,线程切换无需使用内核特权,可以使用特定的调度算法。缺点:用户级线程阻塞会引起整个进程的阻塞。 - 混合式线程
Solaris即支持用户级也支持内核级线程。
JAVA中的线程分类
- 守护线程
为用户线程服务的线程:如垃圾回收,内存管理等线程。新建的线程最初都是用户级线程,可以通过setDaemon()方法设置成守护线程。 - 用户线程
一般用户使用的线程,通过继承Thread类后者实现Runnable接口等实现的线程。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!