Home avatar

个人知识星球,专注于Python/Java/AI技术

语法解析器ANTLR4简易教程

Antlr (ANother Tool for Language Recognition) 是一个强大的跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件。 它被广泛用来构建语言,工具和框架。。ANTLR 根据语法定义生成解析器,解析器可以构建和遍历解析树。

所有编程语言的语法,都可以用ANTLR来定义。ANTLR提供了大量的官方 grammar 示例, 包含了各种常见语言,比如Java、SQL、Javascript、PHP等等。

树莓派4B安装Ubuntu Server 22.0.4

介绍下树莓派没办法连接显示器和键盘的情况下怎样安装Ubuntu Server 22, 以及如何确定树莓派的 IP 地址并登陆进去等一些实用小技巧. 聪明的你还可以用这些学到的新技巧去扫描你的网络。

准备软件:

格式化闪存卡

把闪存卡插入到读卡器中,插入笔记本/电脑的USB插口中,然后打开SDFormatter直接格式化即可。

RabbitMQ简易教程 - 并发调度

RabbitMQ任务调度默认是阻塞的,使用pika中的channel.start_consuming()的时候, 每次收到一条消息后会顺序执行完回调函数,发送ACK的确认消息,然后再执行下一条消息。 虽然说可同时接受多条消息,但是并不能同时处理这多条消息,那么需要自己在代码里面实现任务的并发调度。

RabbitMQ简易教程 - RPC

在教程第二篇里面我们学习了如何实现一个任务队列,异步方式去处理那些比较耗时的任务。 但是如果我们需要调用一个远程主机上面的方法,并且等待它的执行结果呢? 这种模式我们通常将它称为远程方法调用(RPC)。

这一篇我们将利用RabbitMQ来构建一个RPC服务,服务器上面有一个可返回斐波拉契数的函数。 客户端通过rpc调用来获取结果。

RabbitMQ简易教程 - 主题

前面一篇通过使用direct类型的交换机代替fanout广播类型交换机, 实现了一个基于日志级别路由对应的消息的功能。

但是还是有它的局限性——它并不能根据多个条件来实现路由,只能通过完全匹配routing key, 灵活性不够。