c++与golang
文章平均质量分 91
这个专栏收集有我写的关于c++与golang的对比学习文章
UPUP小亮
认真对待每一篇博客
展开
-
经典并发问题的深度分析与实现【c++与golang】【万字分析】
锁与信号量经典的多线程并发问题,需要考虑线程之间的同步和互斥,常用的解决方法包括互斥锁、条件变量、信号量等。针对不同的问题,需要选择合适的解决方法,保证线程之间的正确同步。生产者-消费者问题:有一组生产者线程/进程和一组消费者线程/进程,它们共享一个有限容量的缓冲区。生产者负责将数据项放入缓冲区,消费者则从缓冲区中取出数据项进行处理哲学家就餐问题:涉及到多个哲学家和多个餐叉,每个哲学家需要持有两个餐叉才能进餐。当多个哲学家同时想进餐时,可能会出现死锁。读者-写者问题。原创 2023-06-10 12:15:22 · 1534 阅读 · 0 评论 -
线程池与协程池的原理与实现【c++与gloang】【万字分析】
C++ 线程池是一种多线程编程实现方式,它可以将多个任务并发执行,提高程序的运行效率。具体而言,线程池维护一个线程集合,在程序运行时创建一定数量的线程,并将任务插入到队列中,等待空闲线程来执行。Go语言中的线程池通常指的是协程池,它是一种通过重复利用大量轻量级协程来节省系统开销和提高并发性能的技术。协程轻量、创建和销毁成本低。但是,如果简单地在程序中创建大量的协程,会导致系统开销较大,降低性能。因此,使用协程池管理和控制协程数量是一种有效的解决方案。原创 2023-06-02 22:13:19 · 1890 阅读 · 1 评论 -
关于c++与Golang面向对象的总结与思考【c++与golang】
封装、继承和多态是面向对象编程中最基本的三个概念,C++ 是一种真正的面向对象编程语言,它支持类和对象、继承和多态等常见的面向对象特性。C++ 的面向对象模型非常强大和灵活,允许您创建复杂的系统,并提供高度的可重用性和可扩展性。Go 语言支持面向对象编程,但与传统的面向对象语言不同,Go 语言采用了更加简单和轻量级的面向对象模式。在 Go 语言中,您可以使用结构体(struct)和方法(method)来实现面向对象编程。下面就从封装继承以及多态这三个面向对象的基本概念分别说明他们的异同点。原创 2023-05-26 18:24:14 · 1407 阅读 · 0 评论 -
【项目总结】c++与go语言基于HTTP 协议的服务注册中心【c++与golang】
服务注册中心是一种用于实现微服务架构的基础设施,用于管理和维护服务的注册、发现、负载均衡等功能。它可以让不同的服务通过一个中心化的方式进行管理,降低了服务之间的耦合性,提高了服务之间的可扩展性和可维护性。使用HTTP通信可以简化注册中心的实现,因为HTTP是一种开放的、标准的协议,很容易被不同的语言和框架支持。自定义Header字段可以传递更多信息,扩展性非常强,可以根据不同的需求设计不同的字段。原创 2023-05-15 22:46:56 · 1330 阅读 · 0 评论 -
c++与golang操作数据库总结【c++与golang】
C++和Go语言都可以通过第三方库或内置的库来连接到不同类型的数据库,并且在连接成功后可以使用SQL语句对数据进行操作。分析两种语言对数据库的操作异同点有助于学习两种语言的优劣之处:通过比较这两门语言在处理数据库方面的能力和性能,我们可以更好地理解它们各自的优点和缺点,了解它们在不同情况下的适用性。提高跨平台开发的能力:由于C++和Go语言都是跨平台的编程语言,因此比较它们在数据库操作方面的异同点,可以帮助我们更好地了解如何在不同的操作系统和硬件平台上进行开发,提高跨平台开发的能力。原创 2023-05-23 22:40:07 · 1228 阅读 · 1 评论 -
c++以及golang基于protobuf进行简单通讯【c++与golang】【项目研究】
当我们需要在不同的编程语言之间进行通讯时,通常会遇到数据格式不兼容的问题。在这种情况下,使用数据序列化工具就成为了一种非常有效的解决方案。Google 推出的 Protocol Buffers(简称 protobuf)就是一种非常常用的数据序列化工具,它可以帮助我们快速实现跨语言、跨平台的数据传输等应用。C++ 和 Go 是两种常用的编程语言,本文将介绍如何利用 protobuf 实现 C++ 和 Go 语言之间的通讯。为微服务框架打基础。原创 2023-05-16 21:10:31 · 2301 阅读 · 1 评论 -
c++与golang使用json对比【c++与golang】
JSON是一种常见的数据交换格式。C++和Go语言都提供了操作JSON的库,本文介绍了如何在 Go 语言和 C++ 中处理 JSON 数据,并对比了它们的相似点和不同点。Go 语言拥有原生的 JSON 支持,并提供了更多的高级特性和便捷的功能。虽然 C++ 不支持原生的 JSON 操作,但是第三方库也提供了类似的功能。无论是哪种语言,我们都可以很方便地实现数据和 JSON 格式字符串之间的转换,从而实现不同系统之间的数据交换。相同点1、C++和Go语言都提供了操作JSON的库。原创 2023-05-23 22:52:40 · 514 阅读 · 1 评论 -
c++与golang的网络编程学习总结与对比【c++与golang】【万字分析】
本文总结对TCP协议的学习以及对比c++与go语言在socket网络编程中的实现。具体而言从TCP以及socket编程原理出发。然后对c++以及go语言的网络通信并发服务器以及客户端进行了实现。原创 2023-04-22 18:25:43 · 2679 阅读 · 1 评论 -
锁与信号量的深度总结与实现【c++与golang】【万字总结】
线程同步和互斥是多线程编程中的两个重要概念,它们都是为了解决多线程环境下的资源共享和访问问题。**线程同步:**线程同步是指多个线程按照一定的顺序执行,以确保在访问共享资源时,不会出现数据不一致的问题。同步机制主要包括条件变量和信号量。**线程互斥:**线程互斥是指在同一时刻,只允许一个线程访问共享资源,以防止数据不一致和竞争条件。互斥锁是实现线程互斥的主要工具。在操作系统中,锁、条件变量和信号量都是用来实现线程同步与互斥的机制。锁(Lock)是一种互量,用于保护共享资源,防止多个线程同时访问。原创 2023-06-09 15:18:52 · 935 阅读 · 0 评论