自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kubernetes技术详解-从理论到实践-目录Index

kubernetes技术详解-从理论到实践-目录

2025-09-19 11:13:18 174

原创 GLib库入门与实践_目录

目录GLib库入门与实践_目录前言0_00_GLib库入门与实践_前言第一部分1_00_GLib库入门与实践_概述序1_01_GLib库入门与实践_GLib库简介1_02_GLib库入门与实践_GLib库源代码目录结构简介1_03_GLib库入门与实践_GLib库帮助文档简介1_04_GLib库入门与实践_GLib库的编译1_05_GLib库入门与实践_第一个基于GLib库的程序第二部分2_00_GLib库入门与实践_基础序2_01_GLib库入门与实践_GLib库版本与兼容性2

2022-03-11 11:45:27 3357 7

原创 Kubernetes技术详解-从理论到实践-(0)-序

本文为Kubernetes技术详解-从理论到实践的序,主要介绍专栏特点,以及各章节内容概述。

2025-09-29 22:00:00 1039

原创 Kubernetes技术详解-从理论到实践-(17)-调度-Scheduling

Kubernetes调度机制负责将Pod分配到最优节点,主要包括过滤(检查资源、标签匹配等)和打分(评估资源均衡性、亲和性等)两个阶段。调度方式分为三类:硬编码调度(nodeName:直接指定节点名称,跳过调度器;nodeSelector:通过节点标签选择目标节点)、亲和性调度(基于规则匹配,节点亲和性、Pod亲和性、Pod反亲和性)、污点与容忍度(通过节点污点和Pod容忍度控制调度)。调度方式各有特点,实际应用中需根据场景选择合适的调度策略。

2025-09-29 19:45:00 889

原创 Kubernetes技术详解-从理论到实践-(16)-控制器-DaemonSet

DaemonSet是Kubernetes中确保每个节点运行指定Pod副本的控制器。其核心特点是每节点1个副本、自动感知节点变化、长期运行,常用于日志收集、监控代理等场景。与Job不同,DaemonSet是持久性而非一次性任务。示例展示了如何创建DaemonSet,在集群每个节点运行busybox容器定时写日志。创建后,DaemonSet自动为每个节点生成一个Pod,并持续监控其状态。这体现了DaemonSet的节点级守护特性,适用于需要全集群覆盖的基础服务部署。

2025-09-28 21:23:36 507

原创 Kubernetes技术详解-从理论到实践-(15)-控制器-CronJob

CronJob是Kubernetes基于时间调度的任务控制器,主要特点包括:采用类Unix cron语法(分时日月周),支持并发控制策略(Allow/Forbid/Replace),可配置任务历史记录保留数量,支持时区设置,底层通过创建Job对象执行任务,主要用于定时数据备份(数据库/仓库快照)、日志清理与数据压缩、定期生成统计报表、证书自动续期检查及集群健康巡检场景。与普通Job的主要区别在于触发方式(自动/手动)和历史记录管理。通过合理配置并发策略和资源限制,可确保定时任务稳定可靠执行。

2025-09-28 19:30:00 702

原创 Kubernetes技术详解-从理论到实践-(14)-控制器-Job

Kubernetes Job控制器是一种用于管理一次性任务的工作负载资源,确保指定数量的Pod成功完成后即终止。Job适合批处理、数据迁移等场景,具有一次性执行、可并行、失败重试等特点。示例展示了如何通过YAML文件定义Job,使用busybox镜像向宿主机文件追加日志。创建Job后,系统会自动调度Pod执行任务,完成后Pod状态变为Completed。通过挂载hostPath卷实现宿主机数据持久化,确保任务结果可靠存储。该机制为Kubernetes处理离散计算任务提供了标准解决方案。

2025-09-27 17:15:00 1310

原创 Kubernetes技术详解-从理论到实践-(13)-集群-Cluster

本文介绍了Kubernetes集群的三种工作模式,重点讲解了单控制平面模式和高可用控制平面模式。单控制平面模式包含一个主节点(master)和多个工作节点(worker),而高可用模式则具备多个控制平面节点。文章提供了详细的安装步骤示例,包括主节点和工作节点的安装命令,以及如何通过kubectl检查节点状态。安装过程涉及加载必要镜像、设置系统服务等步骤,并强调了token在节点连接中的重要性。配套资料包中包含相关安装文件和镜像。

2025-09-27 10:45:00 788

原创 Kubernetes技术详解-从理论到实践-(12)-包管理器-Helm

Helm是Kubernetes的包管理工具,核心概念包括Chart(安装包)、Repository(仓库)、Release(运行实例)等。文章详细介绍了Helm的安装使用流程,包括添加仓库、部署应用、升级回滚等操作。重点讲解了如何搭建私有Helm仓库,包括打包Chart、生成索引文件、搭建HTTP服务等步骤,并提供了示例代码。最后解析了Chart的标准目录结构,包含Chart.yaml、values.yaml等关键文件。通过Helm可以简化Kubernetes应用的管理和部署流程。

2025-09-26 23:45:00 1233

原创 Kubernetes技术详解-从理论到实践-(9)-访问控制-ControllingAccess

Kubernetes API访问控制摘要 Kubernetes通过API Server实现访问控制,主要分为认证、授权和准入控制三个阶段。API Server提供REST接口处理kubectl、Dashboard等客户端的请求,支持多种认证方式(x509证书、Bearer Token等)。授权模式中RBAC是默认方式,通过角色绑定实现权限管理。访问控制流程为:客户端请求→认证→授权→准入→etcd存储,确保集群安全性和资源操作合规性。

2025-09-26 19:15:00 940

原创 Kubernetes技术详解-从理论到实践-(8)-控制器-StatefulSet

Kubernetes中StatefulSet控制器专为有状态应用设计,相比Deployment具有以下核心特性:1)Pod按固定顺序启停,确保有序部署;2)为每个Pod提供稳定的网络标识和持久化存储;3)通过volumeClaimTemplates为每个Pod动态创建独立PVC。典型应用场景包括MySQL、Kafka等需要稳定身份和持久存储的服务。StatefulSet通过Headless Service为Pod提供固定DNS记录,保证应用状态一致性,而Deployment更适合无状态应用的并行部署。

2025-09-25 21:00:00 1715

原创 Kubernetes技术详解-从理论到实践-(7)-存储-Storage

本文介绍了Kubernetes中的存储机制,重点讲解了emptyDir、hostPath、nfs、persistentVolumeClaim、configMap和secret这六类常见的存储方式。并针对每种存储方式给出了运行示例。

2025-09-25 19:30:00 1417

原创 Kubernetes技术详解-从理论到实践-(6)-服务-Service

Kubernetes Service为Pod提供统一访问入口,支持负载均衡和服务发现。本文介绍了四种Service类型:ClusterIP(集群内部访问)、NodePort(外部直接访问)、LoadBalancer(云负载均衡)和ExternalName(指向外部服务)。重点演示了ClusterIP Service的创建过程,通过Deployment管理3个Nginx Pod副本,然后定义Service资源清单将Pod暴露为集群内部服务。创建后可通过ClusterIP:8080访问Pod服务,端口映射为80

2025-09-24 21:30:00 955

原创 Kubernetes技术详解-从理论到实践-(5)-控制器-Deployment

Kubernetes Deployment控制器是管理无状态应用的核心组件,支持声明式滚动更新、回滚和扩缩容。通过YAML文件定义,可指定副本数、镜像版本等参数。关键操作包括创建、查看、扩容/缩容副本数(kubectl scale命令),以及查看详情(kubectl describe)。部署时会自动创建ReplicaSet控制器来管理Pod生命周期,确保始终维持期望的副本数量。Deployment采用滚动更新策略,支持最大不可用和最大增量更新比例,保证服务连续性。

2025-09-24 19:00:00 1139

原创 Kubernetes技术详解-从理论到实践-(附录A)-配套资料包介绍

《Kubernetes技术详解-从理论到实践》配套资源包提供了完整的离线安装包和实践案例,包含K3s环境部署和17个技术章节的实践源码。资源包涵盖Pod、控制器、存储、服务、网关、访问控制、Dashboard、Helm、集群、调度等核心内容,并附有Docker、Helm等离线安装文件,方便国内用户快速搭建环境。每个章节对应独立目录,提供可直接运行的示例代码,适合边学边练。

2025-09-24 10:19:47 572

原创 Kubernetes技术详解-从理论到实践-(4)-控制器-ReplicaSet

ReplicaSet是Kubernetes中用于维护固定数量Pod副本的控制器。它通过selector匹配标签来管理Pod,确保实际副本数与期望值一致。虽然日常多使用Deployment(内置ReplicaSet),但ReplicaSet仍适用于批处理任务、灰度测试、演示环境等场景。操作上支持创建、查看、扩缩容和删除,能自动维护Pod数量。典型应用包括临时计算集群、金丝雀部署和资源受限环境,提供简单可靠的副本管理功能。

2025-09-23 21:00:00 468

原创 Kubernetes技术详解-从理论到实践-(3)-命名空间-NameSpace

Kubernetes 命名空间(NameSpace)是一种逻辑隔离机制,用于划分集群资源。摘要要点如下: 基本操作 查看命名空间:kubectl get namespace/ns 创建命名空间:通过yaml文件定义后kubectl apply 删除命名空间:kubectl delete ns [name] 使用示例 在指定命名空间(如dev)下创建pod,需确保命名空间已存在 不同命名空间可创建同名pod资源 查询资源需指定命名空间(-n参数) 使用场景 多用户/多团队环境资源隔离 为不同团队分配独立命名空

2025-09-23 18:45:00 1223

原创 Kubernetes技术详解-从理论到实践-(10)-WebUI管理-Dashboard

Kubernetes Dashboard是K8s官方提供的Web管理界面,通过可视化方式实现集群管理、应用部署和日志查看等功能。安装只需下载recommended.yaml文件并执行kubectl apply命令,该文件包含创建Namespace、ServiceAccount、Secret、RoleBinding等资源对象。Dashboard通过kube-apiserver接口实时获取数据,支持RBAC权限控制,安装后可通过NodePort方式访问。相比命令行,Dashboard提供了更直观的集群管理体验。

2025-09-23 13:50:06 80

原创 Kubernetes技术详解-从理论到实践-(11)-网关-Ingress

本文介绍了Kubernetes Ingress网关的基本概念和部署方法。Ingress是一种集群入口资源,通过域名+URL路径规则分发流量,解决了NodePort和LoadBalancer服务的端口耗尽问题。本文简单介绍了Ingress控制器的类型,并以ingress-nginx为例,提供了具体的部署步骤。部署所需镜像文件和资源清单详见配套资源下载地址。文末还对Traefik这种K3s自带的Ingress进行了介绍,并给出演示示例。

2025-09-23 13:49:24 80

原创 Kubernetes技术详解-从理论到实践-(2)-容器组-Pod

本文介绍了Kubernetes中Pod的基本概念和操作实践。Pod是K8s最小的调度单元,包含一组共享网络、存储和命名空间的容器。文章详细讲解了如何使用docker创建nginx和busybox容器,并演示了通过yaml文件定义和创建Pod的基本流程,包括查看Pod状态、描述信息和日志等操作。关键点包括:Pod的核心特征、镜像基础操作、yaml文件结构解析以及kubectl常用命令。这些内容为理解K8s基础架构和Pod管理提供了实践基础。

2025-09-22 23:15:00 850 4

原创 Kubernetes技术详解-从理论到实践-(1)-环境部署-Setup

本文详细介绍了如何快速搭建k3s环境的完整流程。首先需要在VMware中配置虚拟机,安装OpenEular22.03操作系统并安装必要的rpm软件包。接着安装Docker并导入相关镜像。然后重点介绍了k3s的三种安装模式:单控制平面模式、高可用控制平面模式和混合模式,分别说明了安装步骤和参数配置方法。最后还提供了k3s卸载的操作说明。该指南特别适合需要快速搭建k3s环境进行测试或开发的用户,包含了从系统安装到集群配置的完整路径。

2025-09-22 18:47:22 905

原创 logrotate日志转储

etc/logrotate.conf内有一行include /etc/logrotate.d,加载该目录下的所有规则文件。系统常见的日志文件如/var/log/message、/var/log/boot.log、/var/log/syslog均已配置了日志转储。但这里有个问题,/etc/logrotate.d/testlog是被/etc/logrotate.conf包含进去的,logrotate.conf的参数配置和testlog的参数配置有可能不同,这将会影响结果。

2022-09-17 00:32:33 1984

原创 附录B_GLib库入门与实践_附带源码的CMake文件内容

附带源码CMake工程目录结构附录A已经介绍过,本系列文章是由CMake构建工具组织的,以glib_markup和glib_regex为例,目录结构举例如下:glib_examples├── CMakeCommonFile.txt├── CMakeCustomCommonFile.txt├── CMakeLists.txt├── compile_and_exec_all_examples.sh├── glib_markup│ ├── CMakeLists.txt│ ├── glib

2022-03-14 09:57:36 706

原创 附录A_GLib库入门与实践_本系列文章附带源码简介

本系列文章包含了200多个示例程序,为了组织这些源码,使用CMake构建工具建立CMake工程以对其进行管理。现以glib_markup和glib_regex两个功能模块为例,讲解如何使用附带源码,以及如何基于本CMake工程添加新的模块。有些示例为错误示例,在文章中会特别说明,错误示例的源码目录也一般以_err结尾。所有正确的示例代码均在CentOS7.6 X86_64平台上编译通过,且通过valgrind检查工具检查无内存泄露。附带源码目录结构简介glib_examples├── CMakeCo

2022-03-14 09:56:48 855

原创 5_10_GLib库入门与实践_内存切片分配器

简介内存切片分配器使用了复杂的分层设计,灵感来自Bonwick的slab内存分配器,它提供了一种节省空间和多处理可扩展的方式来分配相等大小的内存,避免了过多的内存浪费,还兼顾了可伸缩性和性能问题。内存切片分配器使用posix_memaligin()来优化许多相同大小的块内存分配,并根据线程可利用空间表(free list)来快速分配指定结构大小的内存。在内存释放之后,额外的缓存逻辑还该内存保留一段时间。一般来说,频繁申请释放的小块内存,建议使用内存切片分配器。数据结构无特殊数据结构函数列表gp

2022-03-14 09:56:02 781

原创 5_09_GLib库入门与实践_内存申请及释放

简介GLib内存申请及释放函数。数据结构无特殊数据结构函数列表#define g_new()#define g_new0()#define g_renew()#define g_try_new()#define g_try_new0()#define g_try_renew()gpointer g_malloc ()gpointer g_malloc0 ()gpointer g_realloc ()gpointer g_try_malloc ()gpoint

2022-03-14 09:55:37 2029

原创 5_08_GLib库入门与实践_IO通道

简介GIOChannel数据类型旨在提供一种可移植的方法来使用文件描述符、管道和套接字,并将它们集成到主事件循环中。目前,UNIX平台已完全支持,Windows平台只是部分支持。要在UNIX系统上创建新的GIOChannel,可以使用使用 g_io_channel_unix_new(),这适用于普通文件描述符、管道和套接字。使用g_io_channel_new_file()可以以独立于系统的方式为文件创建通道。一旦创建了 GIOChannel,就可以通过函数g_io_channel_read_char

2022-03-14 09:55:15 1389

原创 2_02_GLib库入门与实践_基本数据类型

出于编码风格一致性或可移植性考虑,一般的库,都会重新定义自己的基本数据类型。GLib库定义的基本数据类型GLib也定义了许多常用类型,可分为以下几组:不属于标准C的新类型(但在各种C标准库头文件中定义)-gboolean、gssize。保证在所有平台上大小相同的整数类型-gint8、gint8、gint16、gint16、gint32、gint32、gint64、gint64。比标准C语言更容易使用的类型-gpointer、gconstpointer、guchar、guint、gushort、g

2022-03-13 01:05:26 761

原创 5_07_GLib库入门与实践_主循环

简介GLib主循环用来处理GLib和GTK+应用程序的所有事件源。GTK+的事件驱动特性正是基于GLib主循环。GLib主循环设计思想是基于poll的"prepare/check/dispatch"模式,支持多事件源,像键盘、鼠标、文件、管道、设备、套接字、定时器及其他自定义事件类型对象都可以产生事件,这些事件可以作为事件源增加到主循环被统一管理。当产生事件时,主循环会调用事件源处理函数处理该事件。GLib主循环模块内置了Idle和Timeout两个事件源。Idle主要实现异步事件,支持重复执行,当用

2022-03-13 00:22:07 1414

原创 5_06_GLib库入门与实践_模块动态加载

简介模块动态加载支持跨平台使用,支持Windows、Linux和MacOS,每个平台都有单独的实现,最后统一封装成对外调用的接口。Windows的实现代码在gmodule-win32.cLinux的实现代码在gmodule-dl.cMacOS的实现代码在gmodule-dyld.c数据结构模块动态加载的数据结构是一个不透明数据结构,只能整体使用它,无法单独引用其内部成员。typedef struct _GModule GModule;函数列表gboolean g_module_su

2022-03-13 00:21:31 563

原创 5_05_GLib库入门与实践_异步队列

简介在数据类型里面介绍过双端队列,双端队列没有线程和锁的概念,需要调用者自行保证数据同步性,本章要介绍的是异步队列,本身具有多线程同步特性,非常方便使用。数据结构异步队列的数据结构不透明,只可以整体使用它,无法单独引用其内部的成员。typedef struct _GAsyncQueue GAsyncQueue;函数列表GAsyncQueue * g_async_queue_new ()GAsyncQueue * g_async_queue_new_full ()GAsyncQueue

2022-03-13 00:20:45 1627

原创 5_04_GLib库入门与实践_线程池

简介线程池是在多线程编程时经常用到的技术。在进行多线程任务处理时,如果线程频繁创建和销毁,将会使系统开销变大,在这种情况下,上一个任务执行完后不销毁之前创建的线程,后续任务重用该线程,将会大大减小开销。为了管理这些创建之后不再销毁的线程,便有了线程池的概念。GLib的线程池除了提供一般的线程池函数外,还提供了诸如获取当前运行的线程数量、获取未处理的任务数量、获取或设置线程池的最大线程数量、获取未使用的线程数量、设置未使用的最大线程数量、停止所有目前未使用的线程,但经过实际测试,这里面有些功能并未生效。

2022-03-13 00:19:49 822

原创 5_03_GLib库入门与实践_线程

简介GLib提供了对线程、互斥锁、递归锁、读写锁、条件量、线程私有数据、线程一次性初始化、位锁及指针位锁的操作。数据结构struct GThread // 线程union GMutex // 互斥锁struct GRecMutex // 递归锁struct GRWLock // 读写锁struct GCond // 条件变量struct GPrivate // 线程私有数据struct GOnce // 线程一次性初始化函数列表gpoin

2022-03-13 00:18:38 1487 2

原创 5_02_GLib库入门与实践_日志和调试

简介GLib提供了一套日志输出接口,包括不同日志级别的输出以及与systemd日志系统的对接。数据结构日志输出最主要的数据结构是日志级别。GLib提供了debug、info、message、warning、critical和error这六种日志输出级别。其中,error默认是FATAL级别日志输出,输出该级别日志会调用abort()导致程序退出。enum GLogLevelFlags函数列表void g_log ()void g_logv ()#define g_message(

2022-03-13 00:17:40 1955 3

原创 5_01_GLib库入门与实践_错误、告警和断言

简介Linux系统编程中,有一个errno的变量,还有与之对应的perror及strerrno函数,在GLib中,也有相关的一组功能函数GError(源码在gerror.[ch]两个文件),与errno类似。注意,GLib的GError是独立的系统,其错误码与Linux的errno错误码并不相同。GLib还专门提供了一组告警和断言的操作函数,源码在gmessages.[ch]两个文件。数据结构GError的数据结构体见下。其中,code是错误码,message是错误码对应的字符串。struct

2022-03-13 00:17:17 907

原创 5_00_GLib库入门与实践_核心应用支持序

本部分是GLib的核心应用支持部分,包括十章内容。5_01章介绍了错误系统GError、告警和断言。5_02章介绍了GLib的一套日志输出接口。5_03章介绍了线程、互斥锁、递归锁、读写锁、条件量、线程私有数据、线程一次性初始化及位锁相关的操作函数。5_04章介绍了一个线程池。5_05章介绍了带线程和锁的异步队列。5_06章介绍了模块动态加载技术。5_07章介绍了GLib的主循环。5_08章介绍了一套通用的IO通道。5_09章介绍了内存的申请及释放。5_10章介绍了基于slab思想的内

2022-03-13 00:16:42 375

原创 4_15_GLib库入门与实践_N叉树

简介平衡二叉树是一种特殊的树,前面已经介绍过。本章介绍的是N叉树。(本节以下内容翻译自官方文档)GNode 结构及其相关函数提供了一个 N 叉树数据结构,其中树中的节点可以包含任意数据。要创建一棵新树,请使用 g_node_new()。要将节点插入树中,请使用 g_node_insert()、g_node_insert_before()、g_node_append() 和 g_node_prepend()。要创建一个新节点并将其插入树中,请使用 g_node_insert_data()、g_no

2022-03-13 00:16:19 569

原创 4_14_GLib库入门与实践_数据集

简介(本段内容翻译自官方文档)数据集将数据元素组与特定的内存位置相关联。如果您需要将数据与从外部库返回的结构相关联,这些非常有用。由于您无法修改结构,因此您可以将其在内存中的位置用作数据集的键,您可以在其中将任意数量的数据元素与其关联。大多数数据集函数有两种形式。第一种形式使用字符串来标识与位置关联的数据元素。第二种形式使用 GQuark 标识符,这些标识符是通过调用g_quark_from_string()或g_quark_from_static_string()创建的。第二种形式更快,因为它不需要

2022-03-13 00:15:22 375

原创 4_13_GLib库入门与实践_数据列表

简介(本段内容翻译自官方文档)数据列表提供任意数据元素的列表,可以使用字符串或与字符串的GQuark访问这些数据元素。GQuark方法更快,因为无论如何都必须将字符串转换为 GQuarks。数据列表用于将任意数据与 GObject 相关联,使用 g_object_set_data()和相关函数。要创建数据列表,请使用 g_datalist_init()。要将数据元素添加到数据列表,请使用 g_datalist_id_set_data()、g_datalist_id_set_data_full(

2022-03-13 00:14:56 477

原创 4_12_GLib库入门与实践_夸克

简介Quarks标识一对字符串和整数的关联关系。给定字符串或者给定整数,可以方便地获取另一个值。数据结构数据结构typedef guint32 GQuark;函数列表#define G_DEFINE_QUARK()GQuark g_quark_from_string ()GQuark g_quark_from_static_string ()const gchar * g_quark_to_string ()GQuark g_quark_try_string ()const

2022-03-13 00:14:27 515

kubernetes技术详解-从理论到实践-配套资料包

本资源为专栏《kubernetes技术详解-从理论到实践》的配套资料包,专栏地址如下: https://blog.youkuaiyun.com/field1003/article/details/151859722 本资源包分为两大部分,环境搭建和案例实践。1-Setup为Kubernetes环境部署;其余目录和专栏文章一一对应,为Kubernetes技术实践案例。 Kubernetes安装时需要连接到github等站点,国内用户访问可能受限,为聚焦核心问题,快速掌握Kubernetes技术,本资料包1-setup目录包含了本专栏所需离线安装包,包括常用rpm安装包,常用镜像,Docker离线安装包,K3s离线安装包,Helm离线安装包,可以在离线情况下快速部署K3s环境。 Kubernetes较为厚重,本专栏演示环境采用了K3s轻量级方案。对于个人开发和学习而言,K3s和K8s体验感差别不是很大,K3s掌握后可以很轻松切换到K8s。 本专栏文章示例所涉及源码在配套资料包对应目录下,直接下载即可运行,方便边学边练。 配套资料包目录结构: 01-setup 环境部署 02-pod Pod 03-namespace 命名空间 04-replicaset ReplicaSet控制器 05-deployment Deployment控制器 06-service 服务 07-storage 存储 08-statefulset StatefulSet有状态控制器 09-controlling-access 访问控制 10-dashboard WebUI 11-ingress 网关 12-helm 包管理 13-cluster 集群 14-job 任务 15-cronjob 定时任务 16-daemonset DaemonSet控制器 17-scheduling 调度 readme.txt

2025-09-19

glib-2.0-demo.zip

《GLib库入门与实践》专栏的配套源码。专栏地址:https://blog.youkuaiyun.com/field1003/article/details/123420966。 还在为C语言开发时重复造轮子苦恼吗,链表、队列、线程池,统统都得自己实现?先了解一下GLib-2.0库。 GLib库是用C语言实现的一个通用的、可移植的实用程序库,由GNOME的GTK小组开发并维护,最早用在GTK+程序开发上,后来被越来越多的程序使用。 GLib由三大部分组成——GLib、GObject和GIO,GLib是一套C语言工具集,GObject是基于C语言实现的对象系统,GIO是基于GObject的一套简单易用的VFS接口。 GLib包含了字符串操作、文件操作、数据校验、编解码、字符集转换、随机数生成器、命令行解析器、xml解析器、正则表达式、单链表、双链表、 数组、指针数组、双端队列、哈希表、平衡二叉树、N维树、泛型、主循环、多线程、线程池、异步队列、内存分配、内存片段、错误系统、测试框架等等一系列功能,称得上是C语言开发人员的军刀,值得研究。

2022-03-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除