建议自定义标志位和IsInterrupted标志位结合使用 使用自定义标志位的方法如果是阻塞方法(sleep),则自定义标志位无效; 如果单单使用IsInterrupted标志位,又因为java的多线程是协作方式而不是强制方式,所以可能不理会“打招呼”式的中断请求(特别是IO通信方法); 只有两个标 ...
分类:
编程语言 时间:
2019-12-15 18:35:37
阅读次数:
94
1.推荐 文章 2.推荐 github线程文章 ...
分类:
编程语言 时间:
2019-12-15 10:55:40
阅读次数:
84
JMM和volatile分析 1.JMM:Java Memory Model,java线程内存模型 JMM:它是一个抽象的概念,描述的是线程和内存间的通信,java线程内存模型和CPU缓存模型类似,它是标准化的,用于屏蔽硬件和操作系统对内存访问的差异性。 2.JMM和8大原子操作结合 3.volat ...
分类:
其他好文 时间:
2019-12-14 19:15:38
阅读次数:
347
IRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:resident memory usage 常驻内存1、进程当前使用的内存大 ...
分类:
系统相关 时间:
2019-12-11 13:01:07
阅读次数:
75
摘自:https://www.cnblogs.com/ruanjianlaowang/p/12014490.html java多线程与线程池 1. 场景描述 以前多线程也常用,这次因需再页面上用到多线程,如下图,总结下,有需要的朋友可以参考下。 2. 解决方案 2.1 线程池概念 线程池官方定义不说 ...
分类:
编程语言 时间:
2019-12-11 09:44:34
阅读次数:
72
先上一段代码,运行结果是什么 结果是 如果修改为t.start(),结果是 start() : 它的作用是启动一个新线程。 通过start()方法来启动的新线程,处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行相应线程的run()方法,这里方法run()称为线程体,它包含了要执行 ...
分类:
编程语言 时间:
2019-12-09 12:13:22
阅读次数:
81
最近在看《阿里巴巴Android开发手册》,里面有这样几句话: 个人对线程池的使用也有一段日子了,而且很多时候为了省事用的都是Executors的方式去创建,也没什么问题,不过既然阿里的工程师这么说,自然有这么说的道理,以后还是尽量改用ThreadPoolExecutor的方式来创建吧,不过使用Th ...
分类:
编程语言 时间:
2019-12-09 11:51:28
阅读次数:
110
线程池 所谓线程池,就是有一个池子,里面存放着已经创建好的线程,当有任务提交到线程池执行时,池子中的某个线程会主动执行该任务. 新建线程和切换线程的开销太大了,使用线程池可以节省系统资源。 线程池的关键类:ThreadPoolExecutor 主要流程 execute() – addWorker() ...
分类:
编程语言 时间:
2019-12-06 09:40:17
阅读次数:
91
线程池合理的线程数你是如何考虑的?: 1.先看下机器的CPU核数,然后在设定具体参数: System.out.println(Runtime.getRuntime().availableProcessors()); 即CPU核数 = Runtime.getRuntime().availablePro ...
分类:
编程语言 时间:
2019-12-05 14:45:00
阅读次数:
917