自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Vert.x 源码解析(4.x)——ClusteredEventBus入门使用和源码解析

*ClusterManager:**管理和维护集群信息以支持分布式应用程序的开发和运行**ClusteredHandlerHolder:**用于维护事件处理程序的信息,包括处理程序的地址、序列号以及其他与处理程序相关的属性。:事件总线的集群版本。它负责在集群中传递和分发事件和消息。:传递的消息的表示。它包含消息的内容、包含编码解码等数据处理:集群中选择节点的算法集群消息协议协议版本号(Protocol Version):协议的第一个字节通常用于表示协议的版本号。

2023-09-07 11:24:00 230

原创 Vert.x 源码解析(4.x)——Local EvnentBus入门使用和源码解析

Vert.x EventBus是一个分布式事件总线,用于在Vert.x应用程序内或跨多个Vert.x应用程序之间实现异步通信。它允许不同的组件、模块或服务之间通过消息进行交互,从而实现松耦合和高度可扩展的架构。EventBus分为两种,一种是Local模式(项目内),一种是Clustered(集群进行传输)。本文先介绍用法和Local模式传输的源码,下一文章介绍Clustered集群传输的源码。

2023-09-07 11:22:40 218

原创 Vert.x 源码解析(4.x)(一)——Context源码解析

Vert.x 中,多线程环境下的资源管理和状态维护是一个复杂的问题。为了解决这个问题,Vert.x 引入了 `Context` 这个核心概念。`Context` 负责在多线程环境下协调异步操作,提供线程安全的资源访问,并确保异步操作的正确执行顺序。本文将对 Vert.x 的 Context 进行源码解析,探讨它在异步编程中的作用、设计原理以及关键的实现细节。

2023-09-01 08:11:45 162

原创 Vert.x 源码解析(4.x)(一)——Future源码解析

这是 Vert.x 中的一个通用接口,用于表示异步操作的结果。它可以包含成功的结果值或失败的异常,允许您在异步操作完成后检查结果,并相应地采取行动。关键函数如下//执行完后的值T result();//异常值//判断是否成功//判断是否失败.........创建PromiseImpl,并且获取Future类,通过Future.OnComplete来添加监听器,通过Promise的complete设置值并且通知监听器。是不是很简单。

2023-09-01 08:09:16 533

原创 Handler跨线程源码分析

Handler如何实现跨线程handler 的构造函数 public Handler(Callback callback, boolean async) { //指定 Looper mLooper = Looper.myLooper(); if (mLooper == null) { throw new RuntimeEx...

2019-02-11 22:22:05 178 1

原创 Java多线程学习(四)ThreadGroup(线程组)

目录一、ThreadGroup概述二、ThreadGroup常用API三、API例子一、ThreadGroup概述每个线程隶属于唯一一个线程组,这个线程组在线程创建时指定并在线程的整个生命周期内都不能更改。默认线程创建时属于main线程组。默认创建的线程组也属于main线程组,所以线程组组成了一棵以系统线程组为根的树补充:main线程组属于system线程组,system线程组时根线程组二...

2019-03-05 09:58:22 285

原创 Java多线程学习(三)Thread基本函数详解(sleep、yield、join、interrupt、守护线程、优先级)

sleep、yield、joinsleep:api:sleep(long millis) //参数为毫秒sleep(long millis,int nanoseconds) //第一参数为毫秒,第二个参数为纳秒注意点:sleep就是让线程睡眠,交出CPU,但是值得注意的是它不会释放锁优先级高优先级被优先执行的记录更大最低优先级 1:Thread.MIN_PRIORITY...

2019-03-05 09:56:44 693

原创 Java多线程学习(一)synchronized关键字

java 内置锁是互斥锁synchronized(悲观锁)非公平锁(效率高,优先级低的可能永远无法获取CPU的执行权,优先级高的可能重复执行)自动释放锁容易产生死锁JVM执行Lock(ReentrantLock(实现类))(乐观锁)公平锁:根据时间先后顺序来执行(根据顺序所以是有队列的,所以效率会低)忽略中断锁。响应中断锁手动释放锁java层的代码CAS(乐观锁)...

2019-03-01 14:47:03 209

原创 Java多线程学习(二)wait、notify、notifyAll详解

目录一、整体图表二、具体方法2.1 wait方法2.1.1定义2.1.2注意2.1.3使用方式2.2 notify方法2.2.1定义2.2.2注意2.2.2 使用方式2.3 notifyAll2.3.1定义2.3.2注意2.3.3 使用方式一、整体图表二、具体方法2.1 wait方法2.1.1定义让线程进入等待并且释放锁。2.1.2注意当前线程必须持有该对象的锁wait必须被唤...

2019-03-01 14:44:36 214

原创 Android 多渠道打包汇总(友盟、美团、360)

多渠道打包1 友盟多渠道打包补充知识Flavors:产品渠道,通过productFlavors针对不同的渠道进行配置flavorDimensions: flavors的作用是扩大维度,flavorDimensions则是将维度再次扩大。举个例子,flavors渠道有小米,但是小米有分收费和免费版。这时候可以通过flavorDimensions来扩大维度(具体的可以找下博客很多的)。B...

2019-02-13 11:01:55 1389

原创 Mac环境下反编译APK

目录一 通过Android studio的Analyze apk点击后选择你要反编译的apk,得到的就如下图所示目录classes.dex文件:android 的核心代码,你所写的代码都在这里头res : 资源文件。resources.arsc:记录资源文件和资源id的映射关系META-INF:保存apk签名信息,保证apk的完整性和安全性。AndroidManifest.x...

2019-02-12 16:01:25 364

原创 Android开发之版本统一规范

需求组件化的时候有很多个module,不可能每个module里都要写上一份,那这样子很容易出现问题,所以就需要统一的版本管理实现创建 versions.gradle在根目录下创建 versions.gradle创建方法:在Project模式下点击右键—>New—>File—>输入名字(要以.gradle结尾)书写versions.gradle在里面写上你需要的库以...

2018-12-05 15:06:01 320

原创 Android实现通讯录功能,排序+字母索引(全拼加简拼)

一、效果图展示无图不BB,先上图二、功能与准备2.1 功能按照拼音顺序对好友进行排序,英文数字符号归为#右侧字母导航条,既可拖动也可点击粘性头布局搜索(全拼+简拼)2.2 准备需要导入文字转拼音的库com.belerweb:pinyin4j:2.5.1'三、开工3.1 右侧字母的索引字母的绘画 private static final String[] D...

2018-12-04 16:55:00 5623 7

原创 Mac 系统更新后 用不了git (错误invalid active developer path)

错误更新了系统后,进入到git工程目录,输入git命令,提示无效路径错误xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun以及在And...

2018-10-25 09:55:42 768 1

原创 【Android】Realm代替SQLite详解

目录 一、简介二、环境配置先决条件:安装配置:三、使用3.1.初始化Realm3.2创建实体3.3 事务操作3.4 增3.5 查3.6 改3.7 删3.8 版本升级(数据迁移)3.9 加密四:问题主键(包括自增长)不是自增长自增长支持SQLIntent传递:五:配合使用rxjava多线程例子加密...

2018-10-24 18:46:40 2879 2

原创 Android Studio:录制视频生成gif

1.录制视频1.首先打开Logcat会看到如下图所示2.点击视频录制按钮会看到如下图所示3.点击红框中的按钮就开始录制,分辨率在下方填写,不填写其中默认是720p的视频,最大三分钟。之后看到如下图所示4.录制完毕后点击红框中的按钮,选择存储路径,视频录制就结束了。2.生成gif图2.1 mac安装ffmpeg在终端执行命令 brew install ffmp...

2018-10-13 16:17:08 484

原创 Android:SQLite详解

目录1. SQLite数据库介绍2. 数据库的增删查改2.1创建数据库以及更新数据库2.2 插入数据2.3 修改数据库2.4 删除数据2.4.1 删除一条数据2.4.2 清空一张表2.4.3 删除一张表2.4.4 删除数据库2.5 查询数据3.数据库的事务4.Demo地址 1. SQLite数据库介绍SQLite是Android内置的...

2018-10-13 15:22:47 500

原创 Java 注解(Annotation) 的基本使用和理解

1.注解概念:相当于标签2.注解的类型2.1 元注解概念:元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面元注解的种类@Retention @Documented @Target @Inherited @Repeatable@Retention作用:解释/说明了注解的生命周期取值如下: RetentionPol...

2018-10-12 15:00:52 737

原创 Mac os下编译C/C++语言

Mac上编译c语言就直接用苹果官方的Xcode,做个记录所看的博客是这篇 http://blog.sina.com.cn/s/blog_610928d30102uxnz.html具体不步骤如下1.选择创建新项目2.选择Command Line Tool3.填写项目资料并创建4.把以下显示的debugger打开5.运行程序...

2018-03-09 10:45:54 19306 1

原创 Android自定义View构造函数、自定义属性详解

1.引言小菜鸟写博客,因为刚刚开始写,写的感觉很乱,如果你能看下去,表示感谢。身份小菜鸟,这篇文章看了鸿洋大神的博客,还有其他博客自己做的一个小总结。所以有什么错误请多多指正。2.初始自定义View的构造函数public MyView(Context context) { super(context); } public MyView(Context context,

2017-08-30 18:27:19 392

原创 mac下启动adb并安装apk

1.先打开你的终端2.在终端下输入以下命令echo $HOME(进入宿主目录(HOME))touch .bash_profile(创建 .bash_profile文件)open -e .bash_profile(打开.bash_profile文件) 3、打开该文件后 输入1.exportPATH=${PATH}:/Users/chenmowen/Library/Android/sdk/plat

2017-08-29 18:00:55 896

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除