技术学习计划
- 如何在Java中设计/实现同步(同步阻塞、同步非阻塞、同步阻塞超时)、异步语意API
- 理解Jdk中Future接口的意义
> 提供同步阻塞、同步非阻塞的获取异步任务Callable的执行状态和结果
- 定义广义Future接口意义
> 基于Future实现了支持同步阻塞、同步阻塞超时、异步API的框架
> https://github.com/dingjoey/java-utils/blob/develop/src/main/java/com/taobao/joey/future/JoeyFuture.java
- 实现keypoint
- Future接口中阻塞语意通过Java monitor的wait-notify机制实现
> Jdk中使用Sync类
- 难点:如何关联异步任务和Future接口
> Jdk中通过类FutureTask
> TB-Remoting通过Mina机制中的WriteFutureListener/ClientIoHandler
- 支持同步(同步阻塞、同步非阻塞、同步阻塞超时)、异步语意API接口example
> https://github.com/dingjoey/java-utils/blob/develop/src/main/java/com/taobao/joey/future/JoeyAsyncTaskExecutor.java
- unix 网络基础知识
- 《Unix网络编程》TCP相关内容通读一遍
- linux C的网络程序,把学到的内容应用一遍加深记忆
- C/C++构建工具
- GNU package标准目录结构和Makfile写法
> 样例工程:https://github.com/dingjoey/jupiter
>
> README中有知识点
- Autotools工具
- Autotools工具基本概念
> https://github.com/dingjoey/autotools-tutorial
- 具体使用
- 利用Libtool构建发布的动态库
- 利用Libtool构建内部静态库
- 利用Automake原始primary构建program
- 利用Automake原始primary构建单元测试TESTS nonist_program
- 依赖配置化:利用M4宏,添加-with-deps的配置选项进行配置
> https://github.com/dingjoey/autotools-tutorial/tree/develop_libtool
- 包管理软件rpm,yum学习使用
- yum是用来管理rpm包的工具:处理依赖、安装、删除等
- 指定yum安装路径;查找指定包安装路径
- 安装、删除、更新到指定版本
- rpm 用来安装rpm包
- rpm db即所有安装的RPM包的注册中心。
- rpm db 默认路径是/var/lib/rpm
- 对安装过的rpm package总是直接物理删除,这样做就造成rpm db 越来越臃肿和杂乱
- --rebuilddb:重建已经安装的RPM资料库 ,--initdb:创建一个新的RPM资料
- 在指定位置建立一个新的 rpm db:rpm --initdb --root ~/rpm/
- rpm 安装
- rpm -ivh --nodeps XXX --dbpath ~/rpm/var/lib/rpm --prefix ~/usr/
- http://svn.alibaba-inc.com/repos/ali_asc/2LIB/README