自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java多个线程同时启动的两种方式

【背景】今天遇到一个并发问题,为了在开发环境复现这个bug,需要让多个线程同时执行到某条语句。【解决方案】java1.5的concurrent包下的CyclicBarrier 和 CountDownLatch都能解决这个问题。不得不佩服Doug Lea!【方法1】使用CyclicBarrierpublic class TestCyclicBarrier { class Worke...

2019-01-23 21:54:55 25834 6

原创 安卓活动生命周期

安卓用任务(Task)管理活动(Activity)任务是放在栈内活动的集合默认情况下:启动活动–>入栈按下back或调用finish()–>出栈四大活动状态:状态活动位置备注运行状态位于栈顶可见暂停状态不在栈顶仍可见,如栈顶活动没全屏,下面活动就处于暂停状态停止状态不在栈顶完全不可见销毁状态已经从栈顶弹出完全不可见...

2018-10-07 11:36:40 331 1

原创 BASE理论理解

概念  BASE = BA(Basically Available) + S(Soft state) +E(Eventually consistance)  BASE理论面向的是大型高可用高扩展的分布式系统,和传统事务的ACID的强一致模型,而是提出牺牲强一致性,来换取高可用性,并允许数据在一段时间内不一致,但最终达到一致状态。BA基本可用 分布式系统在出现不可预知故障的时候允许损失部分可用性  1、响应时间上的损失:平时响应时间0.5秒,故障时1-2秒  2、功能上的损失:如限流、服务

2021-07-29 15:48:10 323

原创 Paxos协议简介

故事形式背景  古希腊Paxos小岛,以议会的形式通过法令,议员通过信使传递消息,议员和信使都是兼职的,可能随时离开会议厅(节点挂掉),信使可能传递重复消息(网络消息重复),也可能一去不复返(网络丢包)  目标:议会协议(Paxos)要保证在这种情况下法令(结果)仍然能正确地产生,并且不会出现冲突算法简介  lamport发明的一致性算法  引入 “过半”思想,并支持分布式节点角色之间的轮换,极大地避免了分布式单点的出现(2PC中的协调者)。既解决了无限等待,又解决了脑裂问题,是目前最优秀的分布式

2021-07-29 15:31:07 578

原创 《重构-改善既有代码的设计》感悟

前言  “如果为完成今天的任务不择手段,导致不可能在明天完成明天的任务,那么最终还是会失败。”何为重构? 重构是对软件结构的一种调整,不改变软件可观察行为的前提下:提高其可理解性 降低修改成本为什么重构? 代码结构的流失是累积性的,没有重构,程序会逐渐腐败变质 设计不良的程序往往需要更多的代码,因为他们在在不同的地方使用完全相同的语句做同样的事情 重构的一个重要方向是消除重复代码重构的好处1. 使软件更容易理解  让别人读懂你的代码,才是最重要的(仅让计算

2021-07-29 11:24:48 236

原创 《代码整洁之道》感悟

1、类代码顺序看代码时自上而下,像在读报纸,依次是: 1、公共静态常量 public static final 2、私有静态常量 private static final 3、私有实体变量 private field 4、公共方法 public method 5、私有方法 private method命名规范 名词,应当清晰描述类的权责,如果类名模糊,说明类的权责不清,需要拆分。设计原则 总体:短小;单一职责;只有一条加以修改的理由 (开闭,单一职责,依赖倒置)1、单一

2021-07-29 11:01:11 115

原创 git常见问题场景解决

1、pull-request冲突解决场景:  修复线上bug,在生产分支prd拉了一个紧急修复分支hotfix开发上线,开发完后正常迭代的dev分支要合并到prd分支进行下个迭代上线时报pr冲突,无法自动合并。解决方法 合并路径:hotfix->prd->dev 下面以prd->dev为例(hotfix->prd此时一定无冲突) git checkout prd # 本地切换到prd分支 git pull # 本地拉取最新的prd代码 git ch

2021-07-28 15:20:26 152

原创 kafka消费者超时解决方案

背景  kafka消费者采用批量拉取的方式,一次拉取一批记录来消费,如果消费者线程消费超时会导致整批消息的回滚,从而导致已经消费过的数据再消费一遍,消费者不幂等会出大问题,这也是为啥要强调使用消费队列一定要考虑幂等性的原因。  细思极恐的是:这次在规定的时间内消费不完,你能保证下次就能消费完吗?有可能进入拉取-》超时-》回滚-》拉取的无限循环中。消费超时会发生什么?Kafka Handle Error, Client Will Seek Soon: org.apache.kafka.clients.

2021-07-28 14:21:43 10109 2

原创 常用JVM分析工具命令汇总

背景  在没有阿里arthas帮助的情况下,用下面JVM自带的工具对CPU飙升、OOM等问题定位还是挺有用的。JPS  作用:查看本机java进程信息 jps # 查看当前运行中的java进程号 jps -m # 输出main函数传入参数 jps -l # 输出jar包路径 jps -v # 输出启动jvm参数JSTAT  作用:查看gc次数和时间 jstat -gccause <pid> # pid是上一

2021-07-28 11:17:50 255

原创 maven jar包冲突解决三板斧

背景A依赖于jar包B和C,B和C分别依赖了D的两个不同版本,这时A该依赖D的哪个版本呢?这就看Classloader的加载顺序了,假设Classloader先加载D的老版本,没加载新版本,血案就这样不期而遇了。一板斧  mvn dependency:tree   优点: 简单,可视化清晰   缺点: 不能查看到所有的传递依赖   使用场景:先用这个可以解决90%问题二板斧  mvn dependency:tree -Dverbose   优点: 全!!!  缺点:太多了看得晕

2021-07-28 10:32:56 104

原创 工作中linux常用命令整理

工作中linux常用命令整理基本命令# man可以查看其它指令的用法,按q退出man ls # 查看当前登录 用户who am i # 切换用户su root # 列出路径下文件lsls -l # 等效于ll ll -a # 包含隐藏文件ll -t # 按时间降序ll -rt # 按时间升序 # 文件改名mv a bvim# 搜索aaa 如果在编辑模式先按esc退出/aaa # 进入编辑模式a # 保存并退出escwq # 不保存并退出

2021-07-28 10:17:45 73

原创 es中match_phrase和term区别

我们知道,match会对输入进行分词处理后再去查询。但是match_phrase和term都是不分词的精确查询,这二者有什么区别呢?【发现问题】1.我们先放入一个文档:2.然后使用match_phrase搜索:嗯,不出所料,搜索到了。3.然后我们用term试试纳尼!!!居然没有?那么全句带进去搜总行了吧居然还是不行!!这就奇怪了。【问题分析】我们来看看这句话的分词结...

2019-02-08 14:40:11 20365 7

原创 windows下es环境搭建

1.环境搭建es采用restful风格调用,因此可以用多种方式。以下四种方式可谓各有千秋,对于初学者,我最推崇方法3方法1.直接在浏览器调用如:开启es服务后,直接访问http://localhost:9200/car?pretty即可查看索引信息注意:这里的【car】是之前创建的索引名,【?pretty】表示格式化下,易读些。优点:什么都不用装,直接上手。缺点:只能发get请求进行...

2019-01-31 21:34:12 3702

原创 python27和36双环境配置

由于python27和python3的不兼容,很多情况下要搭建py2和py3的双环境,搭建过程坑较多,本文介绍详细步骤。Step1:环境变量anaconda请忽略加入PATHD:\develop\python27\Scripts;D:\develop\python27;D:\develop\python36\Scripts;D:\develop\python36;Step2:pyt...

2018-10-09 23:14:48 943

原创 sklearn回归方法汇总demo

本文给出了python机器学习包sklearn回归方法,和评价指标。 下面是本demo的参与预测的特征,和预测目标。 特征:两个数值型数据gamma和max_lambda 预测目标:一个数值型数据beta评测指标遍历了所以sklearn的评测指标:explained_variance_score  # 解释方差,越接近1越好r2_score          # ...

2018-04-05 22:16:20 1955

原创 python多线程使用lock实现同步

一直在想,python和java的synchronized等价的是什么,怎么实现同步呢?为了测试同步,我们用5个线程同时进行累加,每次加1进行1000000次。 如果同步成功,那么结果是5000000。我们分别用正确的lock加锁方式,不加锁,错误的加锁方式来进行对比。 正确的加锁方式:target_function1 不加锁:target_function2 错误的...

2018-04-04 13:02:33 1490 1

原创 tensorflow中tf.Variable() 方法和 tf.get_variable()方法的区别

除了用法稍有不同外,二者本质区别在于,当出现name冲突时处理不同。1. tf.Variable() 方法例:我们让两个变量name相同,看tensorflow怎么处理。 输入:var1 = tf.Variable(initial_value=0.0, name="var")var2 = tf.Variable(initial_value=0.1, name="var")pr...

2018-04-02 14:51:24 1349

原创 tensorflow mnist数据集 cnn demo

程序分为两部分 inference 定义了cnn的前向传播过程 train通过梯度下降逐渐减小误差# -*- coding: utf-8 -*-# @Time : 2018/3/31 15:08# @Author : timothy''' 使用CNN进行mnist手写数字识别 输入:28*28*1 卷积层:卷积核大小:5*5,深度为32,步长为1,...

2018-04-01 16:34:46 723

原创 节点(个体)级SIS模型python代码

原来做实验我用matlab写代码。 现在想用machine learning来做cyber security,改成python方便些。 网上一搜仓室级模型代码不少,但是节点(个体)级模型代码没有。 这里贡献一发,出图效果如下: # -*- coding: utf-8 -*-# @Time : 2018/3/27 18:00# @Author : timothyimpor...

2018-03-27 19:44:30 5311 10

原创 tensorflow mnist数据集神经网络demo

# -*- coding: utf-8 -*-# @Time : 2018/3/26 16:40# @Author : timothy''' mnist手写数字识别 输入:像素为【28*28】的图片 输出:数字【0-9】的预测值 隐层神经元数目:500 方法:使用滑动平均的随机梯度下降 损失函数:交叉熵加L2正则项 其它:学习率指数衰减'''import tens...

2018-03-26 20:49:02 197

原创 一个tensorflow神经网络demo

# -*- coding: utf-8 -*-# @Time : 2018/3/7 12:43# @Author : timothy''' 一个完整的tensorflow demo input layer nodes num: 2 hidden layer nodes num: 3 output layer nodes num: 1 数据集:n...

2018-03-11 17:18:05 2218

原创 生成模型和判别模型区别

预测目标在讨论生成模型和判别模型之前,我们先回顾一下机器学习要解决的两类问题。 假设x是输入的特征(feature),y是预测的结果(分类是label,回归是value)。   1.分类:P(y|x) ,即根据输入特征求目标分类。   2.回归:y=f(x),即根据输入特征直接求值。 由于分类问题和回归可以相互转化,下文我们以分类为例。判别模型判别模型直接求解条件概率...

2018-03-05 11:17:49 441

原创 latex插入图片

1. 单图居中\begin{figure}[htbp] \centering \includegraphics[width=8cm]{images/fig1} \caption{图的说明}\end{figure}2. 双图横向并列\begin{figure}[htbp]\begin{minipage}[t]{0.5\linewidth}\centering\includegr...

2018-03-02 22:21:06 2543

原创 Java String的hashcode()方法实现

闲来无事,看java源码。Talk is cheap, show me the code. public int hashCode() { int h = hash; if (h == 0 &amp;&amp; value.length &gt; 0) { char val[] = value; for (int i ...

2018-02-17 14:47:35 1586 1

原创 用pajek生成网络导入matlab

因为论文要用小世界网络和无标度网络,之前一直用matlab代码生成小世界无标度网络。老板说不好引用,要用一个权威的软件来生成网络。原来只用过write_to_pajek把matlab邻接矩阵导入pajek来画图(有大量帖子讲这个)。然而没有pajek-&gt;matlab的,捣鼓了一下午,发现用如下步骤就可以了。下面以pajek生成小世界网络导入matlab为例: 1. net-&gt;rando...

2018-01-25 16:41:17 2519 4

空空如也

空空如也

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

TA关注的人

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