多线程
文章平均质量分 87
独上西楼-
纸上得来终觉浅,绝知此事要躬行
展开
-
Java 线程池理解
1. 使用线程池的原因(侧面) 创建一个线程花销大:https://stackoverflow.com/questions/5483047/why-is-creating-a-thread-said-to-be-expensive/5483105#5483105必须为线程堆栈分配和初始化一大块内存。 需要进行系统调用,以便在主机操作系统中创建/注册本机线程。 需要创建、初始化描述符并将其添加到jvm内部数据结构中。...原创 2021-05-19 15:32:42 · 166 阅读 · 0 评论 -
Java_volatile_2
volatile 学习笔记2:定义静态变量x, y 初始都为0,开启两个线程,分别把x,y 的值赋值给局部变量 a,b , 并且同时更新x, y 的值, 并把a, b的值保存起来。会发现两个线程的执行顺序不定,并且同一个线程的两条语句执行的顺序也不一定,导致a,b的值共有4种情况。其原因是CPU 对指令会重排, 解决方法是给x, y 变量用volatile 修饰,则CPU 不会再进行对它操作的指令重排 public static int x = 0, y = 0; pu原创 2020-07-04 21:22:00 · 110 阅读 · 0 评论 -
Java_Volatile 关键字并发编程问题
最近刷到诸葛大神的关于Java 内存模型的视频,讲到volatile关键字可以保证并发编程的可见性,即变量在各线程内存一致性。里面讲到个例子,创建十个线程,每个线程对静态变量进行 1000 次 加一操作, 到最后这个变量值应该是 10 * 1000 = 10000.但是个人在编程的时候,发现实际的值不一定是 10000, 是 <= 10000 的数。加了log调试也没发现问题。有没大神指点一下, 非常感谢!!!下面是代码:public class VolatileTest..原创 2020-06-29 18:51:01 · 122 阅读 · 0 评论 -
Kotlin_获取网络图片(HttpURLConnection, AsyncTask,协程)
最近学习一下使用Kotlin 从网络获取网络图片,先是学习HttpURLConnection的使用。一、 创建根据URL 获取图片的类class NetworkUtils { private var picture : Bitmap ?= null fun loadPicture(url: URL): Bitmap? { Thread(Runnable { var httpURLConnection: HttpURLConnection =原创 2020-06-15 15:40:58 · 2471 阅读 · 0 评论