零壹视界

Just for fun.


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Java程序员怎么快速掌握python?

发表于 2019-10-16 | 分类于 编程语言 | 评论数:

引言

对于Java程序员来说,已经有了一门编程语言的经验,相信入门python不是个问题,那如何能以更快的速度熟悉并掌握python呢?当然是更多的练习和使用。

工具

开始之前,当然得选择好用称手的工具。

阅读全文 »

如何停止被BlockingQueue阻塞的线程

发表于 2019-08-20 | 分类于 知识库 | 评论数:

如下阻塞队列+线程的代码,很常见,当服务停止时,如何停止被BlockingQueue阻塞的线程?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
BlockingQueue<Integer> blockingQueue = new ArrayBlockingQueue(10);
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Integer el = blockingQueue.take();
System.out.println(el);
} catch (InterruptedException e) {

}
}
}
});

方法是当服务停止时,触发一个操作,给blockingQueue放一个特殊的元素,如上面,传一个值为-1的元素代表停止事件,线程取到这个特殊元素时就跳出循环:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
final int STOP_CODE = -1;
BlockingQueue<Integer> blockingQueue = new ArrayBlockingQueue(10);
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Integer el = blockingQueue.take();
// quit loop when receive stop event
if (STOP_CODE == el) {
break;
}
//do something useful
System.out.println(el);
} catch (InterruptedException e) {

}
}
}
});

在IntelliJ IDEA中远程断点调试tomcat

发表于 2019-05-03 | 分类于 知识库 | 评论数:

如何在IntelliJ IDEA中远程断点调试tomcat?以下是整理的步骤:

tomcat/bin目录新建setenv.bat或setenv.sh

添加如下内容:

1
2
#sh
JPDA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
1
2
#bat
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

启动:

1
2
catalina.sh jpda run
catalina.bat jpda run

IntelliJ IDEA配置:

Java vs Python,谁能胜出?

发表于 2019-05-03 | 分类于 编程语言 | 评论数:

引言

Java vs Python,谁能胜出?作为程序猿,这个问题除了从数据角度分析外,我们更应该从编程语言本身的使用和体验来感受对比一番,然后再谨慎的给出自己的答案。

阅读全文 »

centos上基于virtualenv安装python3

发表于 2019-04-25 | 分类于 知识库 | 评论数:

问题

当初刚学python时,python3还没大流行和广泛应用,还会纠结到底选python2还是python3,2019年,那必须是python3了,可是linux系统如centos里默认自带的python还是2.7的版本,并且有些功能还依赖这个python2.7的版本,要想在centos上安装使用python3,又不影响原来的自带版本,怎么操作?以下是之前整理的脚本步骤。

阅读全文 »

python练手脚本-定时检测无响应进程并重启

发表于 2019-04-21 | 分类于 有用的轮子 | 评论数:

背景

总有一些程序在windows平台表现不稳定,动不动一段时间就无响应,但又不得不用,每次都是发现问题了手动重启,现在写个脚本定时检测进程是否正常,自动重启。

涉及知识点

  1. schedule定时任务调度

  2. os.popen运行程序并读取解析运行结果

阅读全文 »

用redisson的分布式锁实现主从选举(leader election)

发表于 2019-04-19 | 分类于 有用的轮子 | 评论数:

问题

用户数上升,服务要集群,如何实现主从机制,并且当主服务挂掉或停机维护时,其它任意从服务可自动变成主服务?

程序猿A:这还不简单,用zookeeper就行了,配上Apache curator更方便,直接帮你实现好Leader Election了。

程序猿B:嗯…zookeeper又要安装个服务,不想只为了这个主从又引入一个新东西,我们已经有redis了,能不能基于redis来实现?

答案是:yes。

阅读全文 »

给基于HEXO的博客添加gitter在线交流

发表于 2019-04-14 | 分类于 博客搭建 | 评论数:

引子

在逛别人博客空间的时候,偶然发现了可以直接在网页上打开一个窗口和其他在线用户聊天交流的软件gitter,感觉很新奇很轻的聊天讨论方式,就想自己的主页上也弄一个,于是开始各种搜索……整理如下。

阅读全文 »

阿里毕玄-测试Java编程能力-我的回答(二)

发表于 2019-03-31 | 分类于 测试Java编程能力 | 评论数:

毕玄老师发表了一篇公众号文章:来测试下你的Java编程能力,本系列文章为其中问题的个人解答。

第四个问题:

CGLib和Java的动态代理相比,具体有什么不同?

还是从简单的开始。

阅读全文 »

阿里毕玄-测试Java编程能力-我的回答(一)

发表于 2019-03-26 | 分类于 测试Java编程能力 | 评论数:

毕玄老师发表了一篇公众号文章:来测试下你的Java编程能力,本系列文章为其中问题的个人解答。

第一个问题:

基于BIO实现的Server端,当建立了100个连接时,会有多少个线程?如果基于NIO,又会是多少个线程? 为什么?

说实话,如果面试被问到这个问题,也不敢保证能完全答对。那么就回炉重造一下吧。

阅读全文 »
123
零壹视界

零壹视界

从0到1,畅享01世界。一起学习,一起成长。Just for fun!

24 日志
9 分类
36 标签
Creative Commons
闽ICP备15025423号-1 © 2021 零壹视界
|
0%