thread model线程模型

Concurrency并发 vs. Parallelism执行

Many-to-One

               GNU Portable Threads

多对一即多个用户线程映射到单个内核线程  该模式用的少

一个线程阻塞会导致所有线程阻塞

多线程可能无法在多核系统上并行运行,因为同一时间内核中可能只有一个线程

  • Concurrent execution on single-core system:
  • Parallelism on a multi-core system:
  • Multithreading Models

  • Many-to-One
  • One-to-One
  • Many-to-Many
  • Many user-level threads mapped to single kernel thread
  • One thread blocking causes all to block
  • Multiple threads may not run in parallel on multicore system because only one may be in kernel at a time
  • Few systems currently use this model
  • Examples:
    • Solaris Green Threads

One-to-One

Each user-level thread maps to kernel thread Creating a user-level thread creates a kernel thread More concurrency than many-to-one Number of threads per process sometimes restricted due to overhead Examples

  • Windows Linux

每个用户级线程映射到内核线程

创建一个用户级线程会创建一个内核线程

比多对一更高的并发性

每个进程的线程数有时会因开销而受到限制

Many-to-Many Model

Allows many user level threads to be mapped to many kernel threads Allows the  operating system to create a sufficient number of kernel threads Windows  with the ThreadFiber package

允许将许多用户级线程映射到许多内核线程上

允许操作系统创建足够数量的内核线程

    • Otherwise not very common

Two-level Model

Similar to M:M, except that it allows a user thread to be bound to kernel thread

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis 6引入了一个新的线程模型,称为"单线程模型"(Single-Threaded Model),这是一个重要的变更,旨在提高并发性和性能。在之前的版本中,Redis使用的是多线程模型,但在Redis 6中,为了简化和优化内存管理,所有客户端请求都被处理在一个单独的线程中,这个设计被称为"事务性线程"(Transactional Worker Thread)。 这种设计的优点包括: 1. **避免了竞态条件**:由于只有一个线程处理命令,避免了多线程环境中的锁竞争和数据一致性问题。 2. **更好的内存管理**:单线程可以更有效地共享内存,减少了上下文切换的成本。 3. **简化了复杂性**:没有了线程相关的并发控制和同步机制,代码更加简洁,更容易理解和维护。 4. **潜在性能提升**:虽然理论上单线程限制了并发,但在某些场景下,如高CPU缓存命中率的情况下,这种模型可以实现更高的吞吐量。 然而,这并不意味着Redis 6完全失去了并发能力。Redis通过非阻塞I/O和事件循环机制来处理多个客户端连接,每个客户端连接在其自己的线程池中被独立处理,同时保持低延迟。 相关问题: 1. Redis 6为什么要采用单线程模型? 2. 单线程模型如何实现并发连接的处理? 3. 除了单线程模型,Redis 6还有哪些改进或新增的功能与并发有关? 4. 这种模型对于Redis的性能有何影响,尤其是在高并发场景下?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值