自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (1)
  • 收藏
  • 关注

原创 java 并发编程 - ExecutorService

背景为了能够方便的使用线程池,java提供的简单的实现方式。但是《阿里巴巴Java开发手册》中不建议使用。具体描述如下。单一工作线程线程池单一工作线程线程池,实现源码如下public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1,

2020-07-30 14:14:41 200

原创 深入理解线程池ThreadPoolExecutor - 问题整理

execute 和 submit 区别和联系很多博客都有提到线程池ThreadPoolExecutor 中提交任务的接口 execute和submit的区别。基本都是从返回值和异常的角度去看问题,但是我个人觉得没有讲到其本质区别,或者说讲的内容太浅,容易造成错误。首先submit类的接口源码位于ThreadPoolExecutor 的父类AbstractExecutorService中,源码如下: public <T> Future<T> submit(Callable&l

2020-07-28 14:41:48 483

原创 深入理解线程池 - ThreadPoolExecutor

线程是稀缺资源,创建线程,需要申请一定量的内存空间,具体申请多大主要取决于JVM虚拟机,由于对JVM不是很熟悉,后面有机会的时候了解一下,创建一个空线程,到底向虚拟机申请了多大的内存空间,如何通过命令查看,已经运行时如何查看。使用线程池的目的:线程是稀缺资源,不能频繁创建。解耦作用,将线程的创建和运行分开, 方便维护对线程进行复用。线程池肯定不是万能的,它适用于以下场景:线程之间是独立的,不依赖于其他线程的执行时序,执行结果。线程执行的任务在较短时间内可以完成线程的创建数量具有不确定性

2020-07-27 10:33:09 123

原创 Java并发编程笔记-自定义Runnable

RunnableRunnable 是一个接口,是线程的执行体。源码非常的简单。public interface Runnable{ public abstract void run();}为了应对复杂的场景,需要对Runnable进行简单的自定义,下面就描述两种场景,已经我对这两种场景的思考。场景1:获取线程(执行体)的执行结果。场景2:优雅的停止线程。获取线程(执行体)的执行结果注意本文中的执行体可能是Runnable 中的run方法或者Callable中的Call方法。线程的执行结

2020-07-23 21:13:59 774

原创 深入理解Java线程的创建

最近再次阅读了java并发编程的相关书籍和文档,以此为机会对自己学习到的知识做一个总结。创建线程很多博客说创建线程有两种方式一种是通过java.lang.Thread来实现,一种是实现接口java.lang.Runnable。对此有我不同的想法。我认为创建线程只有一种方式那就是通过java.lang.Thread来实现。接口java.lang.Thread只是编写了线程的执行体。最终创建线程还是需要通过Thread来实现。使用Runnable的例子实现Runnable接口 class M

2020-07-23 10:26:26 111

原创 android ListView 选择模式

单选模式

2020-07-13 21:51:39 778 1

测试工具.rar

windows下弱网测试工具,用于模拟网络状况差的情况。本资源包含32位和64位资源。支持TCP,UDP协议等等。

2019-07-01

空空如也

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

TA关注的人

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