摘要: ThreadPoolExecutor组成 ThreadPoolExecutor的核心构造函数: 2. 使用 的`new Pool()`方法创建ExecutorService: 每一个new\ \ \ \ Pool方法实质也是调用ThreadPoolExecutor的构造方法,只是传入的参数是设定好的 阅读全文
posted @ 2017-08-03 22:52 just_yang 阅读(365) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal:线程本地变量 意思就是:每个线程都拥有自己的ThreadLocal。 实际上是,不同的线程可以通过同一个ThreadLocal对象获取只属于自己的数据。其实是,ThreadLocal通过每个Thread内部的ThreadLocalMap实现了这个机制。 使用地方有: Andr 阅读全文
posted @ 2017-08-03 21:48 just_yang 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 什么是Java反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种 的以及 的方法的功能称为Java的反射机制。 反射提供的功能: 运行时判断任意一个对象的类 运行时构造任意一个类的对象 运行时判定一个类具有的 阅读全文
posted @ 2017-08-03 21:47 just_yang 阅读(309) 评论(0) 推荐(0) 编辑
摘要: Object的wait() 搭配 ,`nofityAll()`使用。 线程获取到对象锁之后,执行 就会释放对象锁,同时线程挂起,直到其他线程获取到对象锁并执行 后,线程重新开始运行。 输出: Thread.sleep() 线程获取到对象锁之后,sleep时不会释放对象锁,其他线程也不能获取到对象锁。 阅读全文
posted @ 2017-08-03 21:45 just_yang 阅读(362) 评论(0) 推荐(0) 编辑
摘要: Android提供了MediaPlayer播放器播放媒体文件,其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装,方便使用。但是最好理解下Android媒体文件的解码,编码和渲染流程。 Shape Of My Heart.mp4 阅读全文
posted @ 2017-08-03 21:43 just_yang 阅读(8110) 评论(0) 推荐(0) 编辑
摘要: 在列表控件中使用AsycnTask加载图片时,会带来并发问题。 如果每个子视图都触发一个AsyncTask,因为AsyncTask内部是一个线程池,并发触发时,不能确保每个子视图的AsyncTask都进入了队列,而且异步任务的完成顺序和启动顺序也不一定一致。 "Multithreading For 阅读全文
posted @ 2017-08-03 21:42 just_yang 阅读(761) 评论(0) 推荐(0) 编辑
摘要: LruCache : Android提供的使用了(Least Recently Used)近期最少使用算法的缓存类 内部基于LinkedHashMap实现 实现这个主要需要重写 构造时需要确定Cache的最大内存,一般通过 方法:在添加value到Cache时会被调用,需要返回添加进数据的字节大小 阅读全文
posted @ 2017-08-03 21:41 just_yang 阅读(2106) 评论(0) 推荐(0) 编辑
摘要: 通过 的`decode options`缩小图片到指定尺寸 1:通过加载设置了只编码图片边界options的图片,获取原图的尺寸和类型 2:计算图片需要缩小的倍数 3:设置options的inSimpleSize属性为缩小的倍数 4:获取缩小之后的Bitmap 设置会在decode时,不分配内存,但 阅读全文
posted @ 2017-08-03 21:39 just_yang 阅读(520) 评论(0) 推荐(0) 编辑
摘要: Linux下gcc g++ make cmake 联系和区别 C/C++程序从编写到可执行一般经历这几个阶段 编写源代码 编译器编译代码生成目标文件,如.o文件 链接器链接目标文件和其他目标文件/库文件,生成可执行文件,如.exe Linux平台下, 文件一般是通过编译,但还未链接的目标文件。 文件 阅读全文
posted @ 2017-08-03 21:38 just_yang 阅读(1815) 评论(0) 推荐(0) 编辑
摘要: CentOs 7.0云服务器部署Python Flask 使用: Python 2.7 Flask nginx gunicorn index.py 启动gunicorn: 访问:`:8000` 阅读全文
posted @ 2017-08-03 21:37 just_yang 阅读(1225) 评论(0) 推荐(0) 编辑
摘要: 在非UI线程使用 进行线程通信时,一般都需要进行3个步骤: 创建Looper 创建 启动消息循环 通过这3步,基本就建立好了 Android 的多线程消息通信机制: Handler MessageQueue Looper Message 这几者可谓是你中有我,我中有你的存在。通过 Handler 发 阅读全文
posted @ 2017-08-03 21:35 just_yang 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 1.Java实现 循环式 2.Golang实现 go package main import ( "fmt" ) func main() { a := []int{1, 3, 4, 5, 6} key := 7 i := BinarySearch(a, 0, len(a) 1, key) fmt.P 阅读全文
posted @ 2017-08-03 21:29 just_yang 阅读(519) 评论(0) 推荐(0) 编辑