自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 10 go语言(golang) - 数据类型:哈希表(map)及原理(二)

在 Go 语言中,当 map 的元素数量达到一定阈值时,会触发扩容操作以保持性能。这个过程称为 rehashing,即重新散列所有的键值对到一个更大的哈希表中。

2024-10-31 19:11:16 1266

原创 09 go语言(golang) - 数据类型:哈希表(map)及原理(一)

在Go语言中,map是一种内置的数据结构,用于存储键值对。它类似于其他语言中的字典或哈希表。

2024-10-30 19:06:29 882

原创 08 go语言(golang) - 数据类型:数组、切片

Go语言提供了一组丰富的数据类型,涵盖了基本的数值类型、复合类型和特殊类型。

2024-10-28 19:00:59 1076

原创 07 go语言(golang) - 数据类型:指针 & 单元测试

在Go语言中,指针是一种特殊的,它存储了另一个变量的内存地址。指针对于理解和使用计算机科学中的引用传递非常重要。通过使用指针,你可以直接访问和修改内存地址上的数据,这可以提高程序的效率并允许函数间直接修改传入变量的值。

2024-10-25 18:44:14 1057

原创 06 go语言(golang) - 循环语句&运算符

在Go语言中,for循环是实现循环的主要方式,它非常灵活且强大。

2024-10-23 18:45:28 796

原创 05 go语言(golang) - 常量和条件语句

const (a = 1b = "2"//a = 2 // 报错,不能修改常量。

2024-10-21 18:07:30 852

原创 04 go语言(golang) - 变量和赋值过程

在Go语言中,变量的定义和初始化是编程的基础部分。Go提供了多种方式来声明和初始化变量,以适应不同的使用场景。

2024-10-17 18:51:04 1095

原创 03 go语言(golang) - fmt包&基本类型

字符串可以用双引号 () 或反引号 () 来定义。

2024-10-15 19:10:36 746

原创 02 go语言(golang) - 包和模块

包(Package)包是 Go 语言中代码组织的基本单位。一个包可以包含多个.go源文件,这些文件中的代码共享相同的包名。包用于将功能相关的代码组织在一起,并且可以通过导入语句(import)被其他包使用。包提供了一种封装机制,允许开发者将内部实现细节隐藏起来,只暴露出一部分接口(即公开的函数、变量、类型等)。模块(Module)从 Go 1.11 版本开始,Go 引入了模块作为依赖管理和封装的单位,这是对传统包概念的扩展。一个模块通常对应一个项目或库,它包含了一组相关的包。

2024-10-14 18:58:43 862

原创 01 go语言(golang) - 入门

Go(又称为Golang)是由Google开发的一种静态类型、编译型、并发导向的编程语言。它由Robert Griesemer、Rob Pike和Ken Thompson在2007年设计,并于2009年正式对外发布。官网介绍:https://go.dev/doc/effective_go从官网的指南可以了解接下来的大概学习路线,以下是通过kimi总结翻译的几个点:介绍:示例:格式化:命名:控制结构:函数:数据:并发:错误处理:Web服务器示例:每种语言都有核心特征及其设计目标,Java 和 Scala 运行

2024-10-12 18:38:04 959

原创 python 异步编程:协程

yield关键字用于定义一个生成器(generator)函数。生成器是一种特殊的迭代器,它允许你逐个产生值,而不是一次性创建并返回一个包含所有值的列表。使用yield的函数在执行过程中可以多次yield值,每次yield都会返回一个值,并在下一次从该点继续执行。yield是 Python 中实现协程和异步编程的基础,特别是在 Python 3.3 之前,当时的asyncio库依赖于生成器来实现协程。在 Python 3.5 及以后版本中,引入了async和await语法,提供了更高级的异步编程能力,但。

2024-06-08 11:14:25 1151

原创 分布式任务队列系统 celery 进阶

app/task1.py 和 app/task2.py在上述示例中,通过合理的项目结构,将不同功能模块分离开来,使得代码更加清晰易维护。配置文件:定义了Celery的broker和backend设置。定义任务:创建了包含具体业务逻辑的异步函数,并用@task装饰器标记为可被调度执行的task.启动Worker:编写了用于启动celerey worker 的脚本,使其能够从消息队列拉取并执行相应操作.主程序调用:通过导入task 模块中的方法,实现对某些操作发起异步请求.

2024-06-05 19:12:31 762

原创 分布式任务队列系统 celery 原理及入门

在代码中定义 Celery 应用和需要异步执行的任务函数。例如创建# broker 为消息中间件配置,这里用的是redis# backend 为任务执行结果存储,也用的是redis# 通过装饰器指定任务执行单元,即消息接受后的处理函数@app.taskreturn f'

2024-05-31 18:42:23 1352 2

原创 python中的互斥锁、死锁、递归锁

Python中的互斥锁(Mutex,Mutual Exclusion)是一种同步原语,用于防止多个线程同时访问共享资源。在Python中,互斥锁通常是通过threading模块中的Lock类来实现的。

2024-05-29 19:11:50 1155

原创 Flink CDC 原理

Flink CDC(Change Data Capture)是 Apache Flink 提供的一个变更数据捕获工具集。它可以监控数据库的变更,并将这些变更实时地以流的形式提供给下游系统,这些变更包括插入、更新和删除操作。Flink CDC 适用于需要实时数据管道和数据流处理的场景,如实时数据分析、数据仓库更新、缓存同步、ETL 过程、微服务架构中的数据一致性等。

2024-05-14 18:44:31 1140

原创 python中的多进程为什么比多线程常见-全局解释器锁

'counter''counter'从输出结果我们可以看到,在没有适当锁机制保护下,最终计数器值经常会得到正确的0。这是因为在CPython中,由于全局解释器锁(GIL)的存在,任何时候只有一个线程可以执行Python字节码。这意味着即使没有锁,也不会有两个线程同时执行全局变量的递增或递减操作。

2024-04-30 19:06:29 572

原创 python中的线程间通信

前面学习了线程的一些基本知识如与进程的区别,线程的组成,线程如何创建等,接下来继续线程的学习。

2024-04-28 19:05:10 3101 2

原创 python中的进程间通信

在Python中,进程之间默认是不共享内存的。每个进程都有自己独立的内存空间,这意味着在一个进程中对数据的修改不会影响到另一个进程中的同名数据。: Python 的: 进程可以通过读写文件或操作数据库来交换信息。这种方法相对简单但可能受到I/O性能限制。:如队列(Queue)和管道(Pipe),这些也是提供的功能。它们允许将消息从一个进程传递到另一个,虽然严格意义上不是共享内存,但它们是进行数据交换和任务协调非常有效的手段。下面是一个简单示例代码说明,在不使用Value的情况下。

2024-04-25 19:10:58 1486 1

原创 python中的锁

在深入探讨锁的机制之前,让我们通过一个生动的实例来引入这一概念。本文将通过模拟一个简单的车票购买系统,阐释锁在多进程环境中的重要性。

2024-04-24 18:58:16 1050

原创 python中的字典(dict)排序

在Python中,字典(dict)本身是无序的,直到Python 3.7版本,字典在迭代时会保持插入顺序。如果你需要根据键(key)或值(value)对字典中的项进行排序,可以使用内置的sorted()函数,它返回一个排序后的列表。

2024-04-19 19:08:35 2422

原创 python中的守护进程、僵尸进程、孤儿进程

孤儿进程(Orphan Process)是指在Unix-like系统中,父进程在其子进程结束之前退出或终止了,而这些子进程还在运行的情况。当父进程终止后,所有未终止的子进程将被init进程(PID为1的特殊系统进程)接管。守护进程(Daemon Process)是一种在后台运行的特殊类型的进程,它独立于控制终端,并且周期性地执行某种任务或等待处理某些事件。在操作系统中,僵尸进程(Zombie Process)是指已经完成执行(终止)但仍然有一个记录存在进程表中的进程。但是并不会造成真正的僵尸进程的出现。

2024-04-18 19:15:13 1192

原创 python中的并发编程-进程、线程2

在实际编程中,应该尽量确保程序能够处理所有可能导致退出的情况,并在退出前进行必要的清理工作,如保存状态、释放资源等。例如,操作系统可能会实施内存限制,当进程尝试分配超过限制的内存时,操作系统会终止该进程。在多进程程序中,如果父进程结束,子进程可能会成为孤儿进程,并被操作系统接管。多进程的使用过程中, 如果没有正常的结束进程,则可能会产生僵尸进程或孤儿进程的, 我们下一篇再详细探讨。在多进程程序中,如果所有子进程都结束了,父进程可能会随之结束。这些进程会尝试回收子进程的资源,但可能会导致子进程的异常退出。

2024-04-17 19:20:54 1301

原创 python中的设计模式:单例模式

设计模式的确切数量并没有一个统一的标准,因为不同的资料和文献可能会对设计模式的定义和分类有所不同。然而,最常见的设计模式集合是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides这四位作者在他们的著作《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)中提出的23种模式。:提供了对象创建的机制,能够增加已有代码的灵活性和可重用性。

2024-04-16 19:03:30 1332

原创 python中的并发编程-进程、线程

线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。它们在同一个进程内共享内存和资源,这使得线程之间的创建、销毁、通信和数据共享更加高效。线程的上下文切换通常比进程的上下文切换更快,因为线程共享大部分进程资源,如文件描述符、全局变量等,不需要切换完整的内存空间。轻量级:线程的创建、销毁和切换的开销都比进程要小得多,因为线程共享所属进程的资源,不需要独立的地址空间。并发性:在多线程的环境下,多个线程可以并发执行,提高了程序的执行效率和响应速度。共享资源。

2024-04-09 18:41:50 891

原创 python中的pass关键字、断言、解包、__name__ =__main__的使用

在Python中,pass是一个空语句,它不做任何操作,只是用来占位或作为占位符使用。在Python中,有时候需要保持语法完整性,但又不需要执行任何操作,这时可以使用pass语句。以下是pass总之,pass语句在Python中是一个空语句,用于占位或作为占位符使用,使得代码保持语法完整性。

2024-04-08 18:57:49 1037 1

原创 python中的垃圾回收机制

Python中的垃圾回收(Garbage Collection,简称GC)机制是一个自动内存管理过程,它负责在对象不再被使用时释放内存资源。Python的垃圾回收主要依赖于引用计数(Reference Counting)来跟踪和回收不再使用的对象。除了引用计数,Python的垃圾回收器还包括一个循环检测器,用于检测并回收循环引用中涉及的对象。

2024-04-07 18:49:32 967

原创 python中的元类

在Python中,一切皆对象,包括基本数据类型(如整数、字符串)、函数、模块等。每个对象都有一个类型来描述它是什么。类型不仅定义了对象可以进行哪些操作,还规定了对象占用的内存大小以及布局方式。自定义一个元类型主要涉及继承自type并重写其__new__或者__init__方法来控制如何创建或初始化新型态(即新建立一个class)。# 定义一个名为 Meta 的元素, 继承自 type# 这是一个类的类。print('__new__方法,创建一个类!不是实例!类名:', name)

2024-03-29 19:09:57 941

原创 python中的异常处理

使用自定义例外try:")

2024-03-28 19:11:36 710

原创 python中的反射

反射(Reflection)是编程语言中的一个特性,它允许程序在运行时检查、调用和修改它自己的结构和行为。这意味着程序可以在运行时访问类型信息,并且能够动态地创建对象、调用方法、访问字段和属性,甚至修改类定义。

2024-03-27 18:56:34 1527

原创 python中的装饰器

前面的面向对象特性文章中提到了一些装饰器,比如@property 、@abstractmethod等,本章就重点讨论介绍一下什么是装饰器,及常用的内置装饰器。

2024-03-25 19:18:02 748

原创 python中的面向对象特性

抽象是将复杂的现实问题简化的过程,它通过创建简化的模型来表示复杂的实体,这个模型只包含对于当前问题重要的信息。在面向对象编程中,抽象通常是通过定义类来实现的,类提供了一种方式来定义抽象数据类型,通过隐藏所有的实现细节,只暴露出有限的接口与外界交互。抽象类是一种不能被实例化的类,它通常用作其他类的基类,定义了一些抽象方法,子类需要实现这些抽象方法。Python通过抽象基类(Abstract Base Classes, ABCs)提供了对抽象的支持。使用abc模块可以创建抽象基类。

2024-03-21 19:17:44 665

原创 python中的类与对象

一个基本的类定义包括关键字class,后面跟着类名和冒号。在其下方缩进的代码块中,可以定义属性(变量)和方法(函数)。要使用一个类,你需要根据该类创建对象。每个对象都会有自己独立的属性集合。def __init__(self, value): # 特殊方法__init__用于初始化对象,构造器# 实例化对象print(obj)# 直接修改对象的属性print(obj)

2024-03-20 19:00:29 1315

原创 python中的excel操作

在Python中,处理Excel文件的常用模块有xlrdxlwt和openpyxl。

2024-03-19 19:09:22 752 2

原创 python中的常用模块

os和sys是Python标准库中两个非常重要的模块,它们提供了丰富的方法来与Python解释器以及操作系统交互。

2024-03-14 18:44:44 458

原创 python中的模块和包

在Python中,模块是一个包含Python定义和声明的文件。文件名就是模块名加上.py后缀。模块可以包含函数、类、变量定义以及可执行的代码。使用模块的主要目的之一是将相关的代码组织在一起以提高代码的可重用性、可维护性和命名空间管理。

2024-03-09 21:34:51 935

原创 python中的文件操作2

在Python中,遍历文件通常指的是逐行读取文件中的内容。这种方式对于处理大型文件特别有用,因为它不需要一次性将整个文件加载到内存中。

2024-03-06 19:21:13 1061

原创 python中的文件操作

在Python中,文件操作主要涉及打开、读取、写入和关闭文件。这是一门基础且重要的技能,因为它使得程序能够持久化数据,或者处理磁盘上的数据文件。Python提供了一个内建的open函数用于文件的打开,以及文件对象提供的方法用于读取和写入。

2024-03-04 20:06:29 1079

原创 python及编程范式

编程范式是一种基于特定的理论和原则来指导程序设计和开发风格的模型。它定义了编程语言的结构、风格、元素以及编写程序时应遵循的规则。不同的编程范式提供了不同视角来解决问题,影响着代码组织方式、执行流程以及如何表达程序逻辑。

2024-02-29 21:52:47 2183

原创 python中什么是推导式、lamda函数

推导式(Comprehensions)是Python中一种简洁、灵活且高效的构建容器对象(如列表、集合、字典)的方法。它们允许从一个或多个迭代器快速创建容器,同时可以在创建过程中应用条件筛选或执行某些操作。

2024-02-28 21:46:28 865

原创 python中的变量

对于immutable types (如int、str、tuple),function无法直接修改传入variable本身;任何“modification”都会创建新objects。对于mutable types (如list、dict、set),function可以直接对传入variable进行modification,并且这种modification会反映到外部variable上。

2024-02-27 22:06:16 706 2

空空如也

空空如也

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

TA关注的人

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