简介

线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中。

线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。

使用线程池可以带来一系列好处:

  • 降低资源消耗: 通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗。
  • 提高响应速度: 任务到达时,无需等待线程创建即可立即执行。
  • 提高线程的可管理性: 线程是稀缺资源,如果无限制创建,不仅会消耗系统资源,还会因为线程的不合理分布导致资源调度失衡,降低系统的稳定性。使用线程池可以进行统一的分配、调优和监控。
  • 提供更多更强大的功能: 线程池具备可拓展性,允许开发人员向其中增加更多的功能。 比如延时定时线程池 ScheduledThreadPoolExecutor,就允许任务延期执行或定期执行。
阅读全文 »

队列简介

先进先出(FIFO),生产者往队列里发布事件,消费者获得通知消费事件;如果队列中没有事件时,消费者堵塞,直到生产者发布了新事件。

Queue 接口与 List、Set 同一级别,都是继承了 Collection 接口。LinkedList 实现了 Deque 接口。

阅读全文 »

Disruptor 简介

Disruptor 是一个开源的高性能队列框架,由英国外汇交易公司 LMAX 开发。研发的初衷是为了解决内存队列的延迟问题,能够在无锁的情况下实现队列的并发操作,基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单。

阅读全文 »

Web 技术发展

World Wide Web(万维网),简称 Web,是一种基于超文本和 HTTP 的、全球性的、动态交互的、跨平台的分布式图形信息系统。

阅读全文 »

简介

protobuf(Google Protocol Buffers), 官方文档对 protobuf 的定义: protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法, 可用于数据通信协议和数据存储等, 它是 Google 提供的一个具有高效协议数据交换格式工具库, 是一种灵活、高效和自动化机制的结构数据序列化方法。 相比 XML, 有编码后体积更小, 编解码速度更快的优势;相比于 Json, Protobuf 有更高的转化效率, 时间效率和空间效率都是 JSON 的 3-5 倍。

阅读全文 »

正文

最近发现自己基础算法方面还有些欠缺。虽然之前也看过数据结构、算法导论、计算机网络等等一些基础书籍,也都理解基础算法和数据结构,但因为没有每道都手写过,所以当真正去实现时还需要去查阅参考资料。由此,下定决心弥补这些不足。基础算法在工作中对业务理解、代码编写并没有非常显著的提升,但是个人觉得这些影响是潜在的,它会潜在的影响你的思考和解决方案。总之,基础夯实终归是没错的。

目前较为推荐的有牛客的剑指 offer、LeetCode 的 Top 100 Liked Questions。个人更推荐 LeetCode,但是牛客有手机 App,如果想在上下班路上刷一刷,可以选择牛客。我也是因此选择先刷牛客,下面是相关的题目和个人通过编译的答案,不定期更新,如答案中有错误之处烦请指出。

阅读全文 »

正文

因为一些原因,需要进行修改文件或者文件夹的创建、修改、访问时间。

上网上搜索了一波,有的要修改系统当前时间,然后再对文件做一次修改;有的要下载某些工具(各种各样的工具)。实话说,很多乱七八糟的软件本人并不是很信任,所以就想自己做一个工具出来。

最初的时候我是考虑用 Java 进行编写,但为了方便快捷,后选择了 Python 编写,毕竟脚本语言,在这方面还是有优势的。总共写了两个版本:

  • 版本 1
    用了 os、sys、time 包,只能对文件、文件夹的修改时间、访问时间做修改
  • 版本 2
    用了 win32file、pywintypes、time 中的组件,能对文件、文件夹的创建时间、修改时间、访问时间做修改,但是与系统耦合较大,与系统的类型、版本等等都有关系(不建议用这种方式)

如果一定要修改创建时间,推荐用工具:Total Commande

阅读全文 »

简介

在工作中接触到了IAX2协议,找遍了网上只找到了一些中文的论文。没有协议文档的具体翻译,最后只能自己看英文文档:《RFC 5456》。后因需要整理IAX2文档,就开始整理一个简短的文档,但发现还有所不足,后就开始着手进行翻译,也是为之后需要中文文档的人提供一些帮助,完整的文档地址:IAX2协议文档(RFC 5456)中文翻译。建议英文水平好的看原英文文档。

阅读全文 »
0%