美文网首页
多线程模型

多线程模型

作者: skelton | 来源:发表于2019-04-08 15:36 被阅读0次

线程支持有两种,一种是用户线程,一种是内核线程

用户线程和内核线程之间存在某种关系,有多对一模型,一对一模型,多对多模型。


多对一模型:

多对一模型是多个用户级线程到一个内核线程

优点:线程管理是由用户空间的线程库来完成的,因此效率更高。

缺点:

一个进程执行阻塞系统调用,那么整个进程将会堵塞

任一时间只有一个线程可以访问内核,所以多个线程不能并行运行在多处理核系统上。


一对一模型:

映射每个用户线程到一个内核线程。该模型

优点:

在一个线程执行阻塞系统调用时,能够允许另一个线程继续执行,所以它提供了比多对一模型更好的并发功能

允许多个线程并行运行在多处理器系统上。

缺点:

创建内核线程的开销会影响应用程序的性能,所以这种模型的大多数实现限制了系统支持的线程数量。

linux,windows操作系统家族都实现了一对一模型。


多对多模型:

多对多模型多路复用多个用户级线程到同样数量或更少数量的内核线程。

优点:

开发人员可以任意创建多的用户线程,相应内核线程能在多处理器系统上并发执行。

一个线程执行阻塞系统调用时,线程可以调度到另一个线程来执行


相关文章

  • C++内存模型

    内存模型是多线程环境能够可靠工作的基础,因为内存模型需要对多线程环境的运作细节进行完备的定义。 内存模型通过共享数...

  • 用C语言对Python进行扩展

    python C 扩展代码优点: 可以添加额外的功能:Python的多线程模型受限于GIL锁,自身提供的多线程模型...

  • Reactor线程模型及其在Netty中的应用

    什么是Reactor线程模型 Java中线程模型大致可以分为: 单线程模型 多线程模型 线程池模型(executo...

  • Reactor线程模型【原理笔记】

    前言 Reactor模型是基于事件驱动的线程模型,可以分为Reactor单线程模型、Reactor多线程模型、主从...

  • java内存模型

    前言 在学习java多线程并发编程前,必须要了解java内存模型,只有了解java内存模型,才能知道为什么多线程并...

  • 深入理解Java并发内存模型

    Java内存模型是什么 Java 内存模型翻译自Java Memory Model,也称Java多线程内存模型,简...

  • (五) volatile关键字

    Java多线程目录 1 背景 理解Java多线程的内存抽象逻辑请阅读java多线程内存模型,当代操作系统,处理器为...

  • golang的线程模型——GMP模型

    常见的线程模型 单线程服务器编程模型:Redis、Node.、JavaScript 多线程服务器编程模型:并发多个...

  • Netty篇:Reactor线程模型和NioEventLoop,

    Reactor线程模型 Reactor模式是一种典型的事件驱动的编程模型,主要有单线程模型,多线程模型以及主从线程...

  • 原子类型与原子操作

    原子类型和原子操作 并行编程、多线程与C++11 常见的并行编程有多种模型:共享内存、多线程、消息传递等。 多线程...

网友评论

      本文标题:多线程模型

      本文链接:https://www.haomeiwen.com/subject/arfpiqtx.html