『进阶之路』—— 线程池 (mp.weixin.qq.com)

【简介】

说到线程池,不得不说一下线程。无论是 java 还是 Android ,线程都是一个非常重要的概念,它是所有基础操作的载体,无论是更新 UI,或是请求网络等耗时操作,都需要在线程中完成。众所周知,Android 中将线程分为 主线程 和 工作线程。那主线程和工作线程有什么区别的,其实本质上没太大区别,主线程因为是要跟用户直接打交道,实时交互性强,不能有其他的耗时操作阻塞其正常流程,不然出现丢帧卡顿的现象,因此 Android 是禁止在主线程中进行耗时操作的。

点击查看全文 >>

@code小生 2018-10-14 19:58分享 / 0个评论
赞过的人: 技术头条 code小生
要不要再学学下面的文章?
JVM 源码分析之一个 Java 进程究竟能创建多少线程 (club.perfma.com)
虽然这篇文章的标题打着JVM源码分析的旗号,不过本文不仅仅从 JVM 源码角度来分析,更多的来自于 Linux Kernel 的源码分析,今天要说的是 JVM 里比较常见的一个问题。
by @PerfMa社区 2020-03-12 09:51 分享 查看详情
Looper.loop 为什么不会阻塞掉 UI 线程?来,我们从源码里面找到答案 (mp.weixin.qq.com)
之前在学习Hanlder源码的时候,刚好涉及到 Looper.loop 方面的知识,这里进行一下回答
by @code小生 2019-10-20 22:42 分享 查看详情
Java 线程池 ThreadPoolExecutor 八种拒绝策略浅析 (mp.weixin.qq.com)
谈到 Java 的线程池最熟悉的莫过于 ExecutorService 接口了,jdk1.5 新增的 java.util.concurrent 包下的这个 api,大大的简化了多线程代码的开发。而不论你用 FixedThreadPool 还是 CachedThreadPool 其背后实现都是ThreadPoolExecutor。ThreadPoolExecutor 是一个典型的缓存池化设计的产物,因为池子有大小,当池子体积不够承载时,就涉及到拒绝策略。JDK 中已经预设了 4 种线程池拒绝策略,下面结合场景详细聊聊这些策略的使用场景,以及我们还能扩展哪些拒绝策略。
by @zhisheng_blog 2019-09-22 13:36 分享 查看详情
为何单线程的 Redis 却能支撑高并发? (mp.weixin.qq.com)
为什么 Redis 中要使用 I/O 多路复用这种技术呢?

首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用就是为了解决这个问题而出现的。
by @zhisheng_blog 2019-05-04 02:10 分享 查看详情
【Android】线程/进程绑定指定CPU核 (mp.weixin.qq.com)
此文使用的方式是先编译完so文件,然后将so文件放入项目中使用的。不是直接在项目中放入c代码运行。将c代码直接放入项目时我的项目会在c代码的位置报错,所以采用了先编译成so文件的方式,如果你的项目不报错,可以参考上面第三个文档,将代码直接放入项目中。
by @code小生 2019-01-20 19:09 分享 查看详情
C errno是否是线程安全的 (github.com)
描述了errno全局变量在C语言中是否是线程安全以及怎么实现的
by @张雅宸_zyc 2018-12-02 19:24 分享 查看详情
「Android 进阶」线程池学习与使用 (mp.weixin.qq.com)
线程池概念,以前跟着 Android 视频有学习过,但没有真正使用与梳理,间隔 时间较长后,忘记的差不多。需要养成良性习惯,学习了新的知识点后需要梳理,转换为自己理解语言使用技术文章描述,后续可以直接查阅笔记。
线程的创建与使用:
by @code小生 2018-07-21 17:27 分享 查看详情
Leader-Follower线程模型概述 (ifeve.com)
IO线程模型一直在演化,由最开始的单线程模型,到BIO方式的单线程接受请求线程池线程具体处理单个请求的读写事件,再到NIO的单线程接受请求线程池里面的单个线程可以处理不同请求的读写事件,一个字没有最快,只有更快。最近发现还有个Leader-follower线程模型,其的出现是为了解决单线程接受请求线程池线程处理请求下线程上下文切换以及线程间通信数据拷贝的开销,并且不需要维护一个队列。
by @技术头条 2018-07-05 13:20 分享 查看详情
分析占用了大量 CPU 处理时间的是Java 进程中哪个线程 (www.linuxprobe.com)
本文的目的是在 Java进程中确定哪个线程正在占用CPU的时间。 当您的系统 CPU 负载居高不下时,这是一种有用的故障排除技术。
by @Linux就该这么学 2018-03-23 18:10 分享 查看详情
简述JVM基础(八):线程安全和锁优化 (mp.weixin.qq.com)
我们通过前面的学习,已经知道了工作内存和主内存的8大原子操作,以及Java线程的实现方式,和状态关系。我们清楚:

高效并发首先要保证并发的准备性,而后才是高效。
本篇还解答了如下问题:
by @code小生 2018-02-27 20:33 分享 查看详情