随笔分类 - 多线程(Multithread)
摘要:[TOC] 一、前言 笔者最近在做一个项目,项目中为了提升吞吐量,使用了消息队列,中间实现了 生产消费模式 ,在生产消费者模式中需要有一个集合,来存储生产者所生产的物品,笔者使用了最常见的 集合类型。 由于生产者线程有很多个,消费者线程也有很多个,所以不可避免的就产生了线程同步的问题。开始笔者是使用
阅读全文
摘要:[TOC] 本系列首页链接: "[C 多线程编程系列(一) 简介" ] 1.1 简介 在之前的几个章节中,就线程的使用和多线程相关的内容进行了介绍。因为线程涉及到异步、同步、异常传递等问题,所以在项目中使用多线程的代价是比较高昂的,需要编写大量的代码来达到正确性和健壮性。 为了解决这样一些的问题,在
阅读全文
摘要:[TOC] 1.1 简介 在本章中,主要介绍 线程池(ThreadPool) 的使用;在C 中它叫 ,在使用线程池之前首先我们得明白一个问题,那就是为什么要使用线程池。其主要原因是 创建一个线程的代价是昂贵的 ,创建一个线程会消耗很多的系统资源。 那么线程池是如何解决这个问题的呢?线程池在初始时会自
阅读全文
摘要:[TOC] 1.1 简介 本章介绍在C 中实现线程同步的几种方法。因为多个线程同时访问共享数据时,可能会造成共享数据的损坏,从而导致与预期的结果不相符。为了解决这个问题,所以需要用到线程同步,也被俗称为“加锁”。但是 加锁绝对不对提高性能,最多也就是不增不减 ,要实现性能不增不减还得靠高质量的 同步
阅读全文
摘要:C 多线程编程系列(二) 线程基础 [TOC] 1.1 简介 线程基础主要包括线程创建、挂起、等待和终止线程。关于更多的线程的底层实现,CPU时间片轮转等等的知识,可以参考 一书中关于进程和线程的章节,本文不过多赘述。 1.2 创建线程 在C 语言中,创建线程是一件非常简单的事情;它只需要用到 命名
阅读全文
摘要:[TOC] 系列大纲 目前只整理到第二章,线程同步,笔者后面会慢慢更新,争取能把这本书中精华的知识都分享出来。 "C 多线程编程系列(一) 简介" "C 多线程编程系列(二) 线程基础" "C 多线程编程系列(三) 线程同步" "C 多线程编程系列(四) 使用线程池" "C 多线程编程系列(五) 使
阅读全文