摘要:
Go vs C#, part 2: Garbage Collection | by Alex Yakunin | ServiceTitan — Titan Tech | Medium 译者注 本文90%通过机器翻译,另外10%译者按照自己的理解进行翻译,和原文相比有所删减,可能与原文并不是一一对应, 阅读全文
摘要:
[TOC] 一、前言 本篇文章配图以及文字其实整理出来很久了,但是由于各种各样的原因推迟到现在才发出来,还有之前立Flag的《多线程编程》的笔记也都已经写好了,只是说还比较糙,需要找个时间整理一下才能和大家见面。 对于C 中的 类相信大家都不陌生,这是一个 类型,可以通过 Key/Value(键值对 阅读全文
摘要:
[TOC] 一、前言 笔者最近在做一个项目,项目中为了提升吞吐量,使用了消息队列,中间实现了 生产消费模式 ,在生产消费者模式中需要有一个集合,来存储生产者所生产的物品,笔者使用了最常见的 集合类型。 由于生产者线程有很多个,消费者线程也有很多个,所以不可避免的就产生了线程同步的问题。开始笔者是使用 阅读全文
摘要:
[TOC] 本系列首页链接: "[C 多线程编程系列(一) 简介" ] 1.1 简介 在之前的几个章节中,就线程的使用和多线程相关的内容进行了介绍。因为线程涉及到异步、同步、异常传递等问题,所以在项目中使用多线程的代价是比较高昂的,需要编写大量的代码来达到正确性和健壮性。 为了解决这样一些的问题,在 阅读全文
摘要:
[TOC] 1.1 简介 在本章中,主要介绍 线程池(ThreadPool) 的使用;在C 中它叫 ,在使用线程池之前首先我们得明白一个问题,那就是为什么要使用线程池。其主要原因是 创建一个线程的代价是昂贵的 ,创建一个线程会消耗很多的系统资源。 那么线程池是如何解决这个问题的呢?线程池在初始时会自 阅读全文
摘要:
[TOC] 1.1 简介 本章介绍在C 中实现线程同步的几种方法。因为多个线程同时访问共享数据时,可能会造成共享数据的损坏,从而导致与预期的结果不相符。为了解决这个问题,所以需要用到线程同步,也被俗称为“加锁”。但是 加锁绝对不对提高性能,最多也就是不增不减 ,要实现性能不增不减还得靠高质量的 同步 阅读全文
摘要:
C 多线程编程系列(二) 线程基础 [TOC] 1.1 简介 线程基础主要包括线程创建、挂起、等待和终止线程。关于更多的线程的底层实现,CPU时间片轮转等等的知识,可以参考 一书中关于进程和线程的章节,本文不过多赘述。 1.2 创建线程 在C 语言中,创建线程是一件非常简单的事情;它只需要用到 命名 阅读全文
摘要:
[TOC] 1. 前期预备知识 1.1 串口通讯电路图 ![image_1bqjjhr9leo112efe02df51fp.png 25kB][1] 从上图可见,CC2530芯片通过P0端口的P0.1和P0.2引脚进行串口通讯。这个实验当中对于端口的操作也主要就是P0端口。 1.2 实验相关寄存器 阅读全文
摘要:
[TOC] 1. 前期预备知识 1.1 定时器中断触发 本次实验需关注的中断寄存器。 ![image_1bqbsemrp897bm6hhja68i9vp.png 497.2kB][1] 在本次实验中,分别会使用T1和T3定时器完成功能,所以我们需要注意上图中标注出的中断寄存器。 T1定时器:16位定 阅读全文
摘要:
[TOC] 1.前期预备知识 1.1 新大陆Zigbee模块按键电路图 ![image_1bq9qhq7u5b6g1od316api579.png 35.8kB][1] 由上图可知,Zigbee模块的SW1按钮连接在P1.2端口上,当SW1导通,P1.2电平从3.3V被拉低接地。所以P1.2输入模式 阅读全文
