数据分析
使用多线程为你的 Python 爬虫提速的 N 种姿势,你会几种?
博主通过优化一个多年前编写的爬虫程序,深入探讨了 Python 中的多线程编程及其在爬虫领域的应用。文章首先介绍了线程和进程的基本概念,并通过代码示例展示了如何使用 `Thread`、`ThreadPool`、`ThreadPoolExecutor`、`Process`、`ProcessPool` 和 `ProcessPoolExecutor` 实现多线程和多进程下载。接着,文章讨论了由于 Python 的 GIL 特性,多线程在 Python 中主要适用于I/O密集型任务,而多进程则适用于CPU密集型任务。此外,博主还介绍了如何利用 `asyncio` 和 `requests` 实现异步I/O,以进一步提升爬虫程序的效率。文章最后通过对比不同方法的执行时间,展示了各自性能,并提供了一个福利,开源了示例爬虫程序给读者参考。
读书笔记
《C#多线程编程实战》读书笔记
本文是根据《C#多线程编程实战》整理的读书笔记,详细介绍了在.NET中多线程编程相关的知识,包括线程基础、线程同步、使用线程池、任务并行库、并行集合、PLINQ以及异步I/O等内容。涵盖了线程的基本操作、线程同步的方法、使用线程池、任务并行库的使用、并行集合的应用以及异步I/O的实现。文章总结了55条关键的技巧和注意事项,对于想深入学习多线程编程的人来说是一份很好的参考资料。
编程语言
C# 中 Socket 通信编程的同步实现
通过本文学习了 C# 中 Socket 通信编程的关键技术,实现了一个简单的 Socket 聊天程序以掌握 Socket 编程技能,为进一步开发 Unity3D 网络游戏奠定基础。讨论了 Socket 编程基础和同步实现的概念,以及展示了服务端和客户端的基本流程和代码示例。提出了改进问题包括支持更多数据类型、分离核心功能和自定义功能、以及处理大数据类型的解决方案。1