源码

源码编译mysql 5.5.40

泪湿孤枕 提交于 2019-12-20 23:45:27
[root@localhost cmake-3.1.0]# yum install zlib-devel openssl-devel gcc-c++ gcc bison cmake ncurses-devel -y [root@localhost ~]# groupadd -r mysql [root@localhost ~]# useradd -g mysql -r -s /sbin/nologin mysql [root@localhost ~]# id mysql #确认用户 [root@localhost ~]# mkdir /var/data/mysql -p #存放数据库文件 [root@localhost ~]# chown mysql:mysql /var/data –R [root@localhost MailServer]# tar zxvf mysql-5.5.40.tar.gz -C ../ [root@localhost MailServer]# cd ../mysql-5.5.40/ cmake编译MySQL的一些常用选项: ------------------------------------------------------------ cmake mysql 编译安装: ./configure -> cmake . ./configure -

Spring 源码第一天XmlBeanFactory

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-20 22:31:05
使用spring的第一行代码 BeanFactory beanFactoryf = new XmlBeanFactory ( new ClassPathResource ( "beanFactory.xml" ) ) ; Spring入门使用的第一行代码 其中做的第一件事就是:new ClassPathResource(“beanFactory.xml”);创建了一个ClassPathResource 可以从层次中看到最上层为:InputStreamSource,Resource public interface InputStreamSource { InputStream getInputStream ( ) throws IOException ; } public interface Resource extends InputStreamSource { boolean exists ( ) ; default boolean isReadable ( ) { return this . exists ( ) ; } default boolean isOpen ( ) { return false ; } default boolean isFile ( ) { return false ; } URL getURL ( ) throws IOException ;

LAMP源码安装

守給你的承諾、 提交于 2019-12-20 20:35:29
在安装之前首先把开发包组安装。 [root@tiandong63 ~]# yum groupinstall "Development Tools" "Development Libraries" -y [root@tiandong63 ~]# yum install gcc gcc-c++ openssl-devel -y 上传需要的安装包: [root@tiandong63 ~]# tar -xf apr-1.5.2.tar.gz -C /usr/local/src/ [root@tiandong63 ~]# cd /usr/local/src/apr-1.5.2/ [root@tiandong63 apr-1.5.2]# ./configure --prefix=/usr/local/apr && make -j 2 && make install [root@tiandong63 ~]#tar -xf apr-util-1.5.4.tar.bz2 -C /usr/local/src/ [root@tiandong63 ~]#cd /usr/local/src/apr-util-1.5.4/ [root@tiandong63 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr

3.vue源码分析——组件化

送分小仙女□ 提交于 2019-12-20 10:19:07
组件化是vue中另一个核心思想 所谓组件化 就是把页面拆分成多个组件 每个组件依赖的css js 模板 图片等资源放在一起开发维护 组件是资源独立的 组件在系统内部可以复用 组件和组件之间可以相互嵌套 1. createComponent 上一篇我们了解了普通vnode的生成 现在我们来看看组件vnode的创建 依然是通过_createElement函数创建 里面会做一层判断 得知是组件时调用createComponent方法 此代码截图来自vdom/create-element.js中的_createElement方法 其实这种组件的方式也是我们开发中常用的方式 对于这行代码 我想使用过vue的朋友都不陌生了 接下来我们就看看vue是怎样通过createComponent方法生成组件的vnode的 createComponent方法定义在vdom/create-component.js中 由于createComponent方法比较重要并且代码有点长 所有我会把这个方法分成几段截屏解析 以上代码就是开始的一小段 看完上面代码和解析之后 我们来看看vue是怎样通过extend方法将传进的组件对象转化为组件构造器的 Vue.extend = function (extendOptions: Object): Function { extendOptions =

HashMap实现原理及源码分析

こ雲淡風輕ζ 提交于 2019-12-20 10:14:27
HashMap 概述 HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 HashMap 实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高或将加载因子设置得太低。也许大家开始对这段话有一点不太懂,不过不用担心,当你读完这篇文章后,就能深切理解这其中的含义了。 需要注意的是:Hashmap 不是同步的,如果多个线程同时访问一个 HashMap,而其中至少一个线程从结构上(指添加或者删除一个或多个映射关系的任何操作)修改了,则必须保持外部同步,以防止对映射进行意外的非同步访问。 HashMap 的数据结构 在 Java 编程语言中,最基本的结构就是两种,一个是数组,另外一个是指针(引用),HashMap 就是通过这两个数据结构进行实现。 HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。 从上图中可以看出,HashMap 底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个 HashMap 的时候,就会初始化一个数组。

将Android系统源码导入Android studio的方法

半世苍凉 提交于 2019-12-20 09:38:03
Android源码目录结构如下: |-- Makefile |-- abi (applicationbinary interface,应用程序二进制接口,生成libgabi++.so相关库文件) |-- art (google在4.4后加入用来代替Dalvik的运行时) |-- bionic (Android的C library,即C库文件) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发配置包) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- developers (开发者用,存放几个例子) |-- development (开发者需要的一些例程及工具) |-- device (设备相关代码,这是各厂商需要配置和修改的代码) |-- docs (介绍开源相关文档) |-- external (android使用的一些开源的模组) |-- frameworks (核心框架——java及C++语言) |-- hardware (部分厂家开源的硬解适配层HAL代码) |-- kernel (驱动内核相关代码) |-- libcore (核心库相关) |-- libnativehelper (JNI用到的库) |-- ndk (ndk相关) |--

直播软件开发的关键环节

夙愿已清 提交于 2019-12-20 09:12:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一直以来,直播平台制作都是初入直播行业的创业者关心的问题。如果说在直播平台刚刚诞生的那几年,各项直播开发技术和服务还没那么完善,定制开发直播平台的成本也比较高。但是近年来随着国内很多云厂商都涉足互动视频直播服务,市场上的直播软件源码功能也越来越完善,不管采用哪种方式,都能很快实现直播软件开发。制作直播平台主要有以下几个关键流程。 程序开发环节 如果是采用云厂商提供的视频直播服务,那么就可以自己进行程序开发了,不过组建团队、场地租赁、人员费用等是一笔不小的开支。所以很多没有技术团队的人,最终还是选择购买直播软件源码的方式。不过,直播软件源码市场比较混乱,源码功能的完整性和服务商的技术水平,以及源码的售后服务等都存在差异化,如果是制作直播平台进行商用的话,建议还是实地考察一些有实力的服务商,签订正式的项目开发合同,保证自己的合法权益。 搭建部署环节 不论是自己开发直播软件,还是购买直播软件源码,都必须面对搭建部署这一关键流程。在平台测试推广初期,一般在线人数和直播间并发量不会很高,国内很多服务器厂商推荐的初级配置的服务器足够了。当然如果有明确的运营方案计划,预估在线人数、并发量这些,可以提前咨询专业的运维团队了,后期一旦平台用户增多,就需要用到分布式部署了,而且要根据实际的并发量去进行优化调整

Mina2.0框架源码剖析(八)

对着背影说爱祢 提交于 2019-12-20 08:53:12
这篇来看看 AbstractPollingIoConnector 抽象类,它用于用于实现客户端连接的轮询策略。处理逻辑基本上和 上一篇文章 说的 AbstractPollingIoAcceptor 类似,它继承自 AbstractIoConnector ,两个泛型参数分别是所处理的会话和客户端 socket 连接。 底层的 sockets 会被不断检测,并当有任何一个 socket 需要被处理时就会被唤醒去处理。这个类封装了客户端 socket 的 bind,connect 和 dispose 等动作,其成员变量 Executor 用于发起连接请求,另一个 AbstractPollingIoProcessor 用于处理已经连接客户端的 I/O 操作请求,如读写和关闭连接。 其最重要的几个成员变量是: private final Queue < ConnectionRequest > connectQueue = new ConcurrentLinkedQueue < ConnectionRequest > (); // 连接队列 private final Queue < ConnectionRequest > cancelQueue = new ConcurrentLinkedQueue < ConnectionRequest > (); // 取消连接队列 先来看看当服务端调用

freeswitch源码阅读 之 sofia模块

北战南征 提交于 2019-12-20 08:50:38
sofia模块在freeswitch中的位置非常重要, 所有的sip通话都和它有关, 那么我们就看一下该模块的执行流程。 一、 实现的功能: 1. sip注册; 2. 呼叫; 3. Presence; 4. SLA, 等。 二、 主要的方法, 有三个, 分别为: [cpp] view plain copy #define SWITCH_MODULE_LOAD_FUNCTION(name) switch_status_t name SWITCH_MODULE_LOAD_ARGS #define SWITCH_MODULE_RUNTIME_FUNCTION(name) switch_status_t name SWITCH_MODULE_RUNTIME_ARGS #define SWITCH_MODULE_SHUTDOWN_FUNCTION(name) switch_status_t name SWITCH_MODULE_SHUTDOWN_ARGS [cpp] view plain copy </pre><pre name= "code" class= "cpp">SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load); SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_sofia_shutdown); SWITCH_MODULE