年后回来,因为新项目的需求,开始了解WebRTC相关的知识.目前接触的是Intel® Collaboration Suite for WebRTC.刚开始看SDK发现很多概念是我目前不知道的,于是恶补了一周基本的网络相关的知识.再来看Demo和Jar包里面的源码,对其代码逻辑的理解更深一步了.下面从代码层面分模块对Demo的设计和使用进行总结: 首先声明一下核心的对象: private ConferenceClient mRoom; 无论是登录还是发布.订阅Stream,我们都需要mRoom来进…
关键类整理 ---> ConferenceClient.ConferenceClientObserver. 一.ConferenceClient ConferenceClient是一个应用程序在视频会议通信中用来交流的异步类. 该类实现了 ConferenceClientObserver :会议室客户端观察者 (接口) ConferenceStreamAction : 会议室流表现形式(枚举) RoomState :会议室的状态(枚举) 公共成员方法总结:   ConferenceClient …
1. AQS共享模式 前面已经说过了AQS的原理及独享模式的源码分析,今天就来学习共享模式下的AQS的几个接口的源码. 首先还是从顶级接口acquireShared()方法入手: public final void acquireShared(int arg) { if (tryAcquireShared(arg) < 0) doAcquireShared(arg); } 与acquire()方法一样,tryAcquireShared()为自己是实现的对资源获取的接口,AQS对返回值的语义已经定…
1. ThreadLocal的理解 ThreadLocal,顾名思义,就是线程的本地变量,ThreadLocal会为每个线程创建一个本地变量副本,使得使用ThreadLocal管理的变量在多线程的环境下,每个线程都是访问的是自己内部的副本变量,将全局变量局部化,跟局部变量一样的使用,从而避免了一些线程安全的问题.比如在数据库连接池中获取的连接时,此时的连接对于每个线程来说,都应该是独立的,所以可以使用ThreadLocal来管理该线程的连接.从而避免在多线程环境下的连接的安全问题. 2. Thr…
目录 为什么要使用ConcurrentHashMap? ConcurrentHashMap的结构特点 Java8之前 Java8之后 基本常量 重要成员变量 构造方法 tableSizeFor put方法存值 putVal initTable treeifyBin tryPresize transfer get方法取值 get 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSynchronizer Java并发包源码学习系列:CLH同步队列及同步资源获取与…
为了最大程度地贴近Spring源码并进行学习,一种比较直接的做法是:直接在Spring源码中加入Demo代码,并进行调试. 参照以前使用Spring的经验,Spring最简单的使用方法是:一个实体类.一个Xml配置文件.再加个测试方法.而对于脱离源码的使用,需要至少引入 spring-context 依赖.于是,猜想,在Spring源码中是否可以直接在 spring-context 模块中添加上述最简单的代码呢? 说干就干,在 spring-context 模块中新建一个实体类(Person,位…
前记:坚持使用官网的资源去学习是挺痛苦的一个过程,昨天瞎溜达了一天,也没看到有系统性的学习文章,倒是发现了github上的ActiveMq项目. 地址:https://github.com/apache/activemq 应该会有一些demo或者比较深入的例子吧,而不只是收发消息,因为ActiveMq的features列表里可是有一大堆的功能待深入挖掘. 下面简单记录下从源码编译的过程: 一.下载github源码 二.解压并编译 参考的url: http://activemq.apache.or…
Github版 中文 : TeamTalk 蘑菇街. 开源IM. 电商强烈推荐. MyOne-iOS 用OC写的<一个> iOS 客户端 zhihuDaily 高仿知乎日报 Coding iOS 客户端 Coding官方客户端. OSCHINA 的 iPhone 客户端 开源中国的iPhone客户端源码 meituan – 美团5.7iOS版(高仿),功能包括,团购首页,高德地图搜索附近美食并显示在地图上,上门服务,商家,友盟分享. nuomi – 高仿百度糯米iOS版,版本号5.13.0 J…
知乎:逆向驿站 原文链接 CrackMe006 | 难度适中适合练手 |160个CrackMe深度解析(图文+视频+注册机源码) crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常适合新入门的来练习. 快过年了,Crackme系列年前就停更在006吧,祝大家新年666 ,年后继续 准备 [环境和工具] win7/xp虚拟机环境 CrackMe006(aLoNg3x.1.exe) ollydbg Dededark [学习层次] 逆向分析程序验证流程逻辑 解密算法…
本文来自 网易云社区 . RabbitMQ在金融系统,OpenStack内部组件通信和通信领域应用广泛,它部署简单,管理界面内容丰富使用十分方便.笔者最近在研究RabbitMQ部署运维和代码架构,本篇文章主要记录下RabbitMQ存储机制相关内容和源码分析. 一.RabbitMQ进程架构 Erlang是基于Actor模型的一门天然多进程.分布式和高并发的语言.一个Erlang虚拟机对应一个操作系统进程,一个Erlang进程调度器对应一个操作系统线程,一般来说,有多少个CPU核就有多少个调度器.…