-
-
CPython由于GIL的存在,Python服务端程序通常在子进程中处理请求。使用子进程时,可能会遇到以下两种情况:
- 子进程结束后变成僵尸进程,占用进程号。
- 子进程占用父进程LISTEN的端口号,导致父进程重启时失败。
下文将在
docker python:2.7环境下,模拟一种服务端场景,以复现这两个问题,并提出解决方案。
-
在编写
Spark应用时,有时需要使用到一些额外的jar包、额外的资源文件,因此在每个Executor上都需要一份files的拷贝。那么files是怎么被复制到各个Executor上的呢?本文将基于Spark 1.1.1来分析Spark files的传输流程。
-

Java中的异常分为两种,
Checked Exceptions以及Unchecked Exceptions。Error、RuntimeException及其子类都是Unchecked Exceptions,其余所有Throwable及其子类都是Checked Exceptions,即需要被显式地声明或处理。
-
ConcurrentLinkedQueue 使用了非阻塞的方式提供线程安全的队列,内部使用的是一个普通的单向链表,记录首尾节点,并且首部有一个
dummy node。入队时在尾部加入节点,出队时从首部删除节点。所有对链表的修改都通过CAS操作来保证原子性。下面分析其主要的代码实现。
-


介绍
Redis、Zookeeper、RabbitMQ、Kafka。