Easter79 Easter79
3年前
synchronized的实现原理及锁优化
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized。对于当时的我们来说,synchronized是如此的神奇且强大。我们赋予它一个名字“同步”,也成为我们解决多线程情况的良药,百试不爽。但是,随着学习的深入,我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效,并慢慢抛弃
Stella981 Stella981
3年前
Python 多进程程批量爬取小
使用python多进程跑同样的代码。python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiproc
Stella981 Stella981
3年前
Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus
背景对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页面,不同组件都在进行消息传递。消息传递既可以用于Android四大组件之间的通信,也可用于异步线程和主线程之间的通信。对于Android开发者来说,经常使用的消息传递方式有很多种,从最早使用的Handler、BroadcastReceiver、接口回调,到近几年流行的通
Wesley13 Wesley13
3年前
JAVA ThreadLocal对象浅析
最近在开发过程中,在做一个字典项服务的时候,最开始采用了ThreadLocal对象来缓存数据。在使用ThreadLocal过程中遇到一些问题,这里和大家分享一下。一、什么是ThreadLocal?顾名思义它是localvariable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值
Wesley13 Wesley13
3年前
Java运行时数据区域
两个名词的对比java内存模型定义了线程和主内存之间的抽象关系,即Jvm在计算机内存中的工作方式,控制线程之间的通信。java内存区域内存区域是指Jvm运行时将数据分区域存储,强调对内存空间的划分。今天主要总结一下Java运行时的数据区域Java运行时数据区域
Easter79 Easter79
3年前
TouchVG答疑
Q:TouchVG是否针对绘制效率做了优化?A:TouchVG针对绘制效率做的优化有:a、包络框检查:在视图外的图形不显示b、九宫格剪裁:对直线段、折线、多边形进行剪裁显示c、后台异步显示:regenAll重新生成所有图形时,在单独的CALayer和GCD线程中绘制,绘制完后再显示到视图,不阻塞主线程交互和显示。例如重绘10000条曲线在后台绘
Wesley13 Wesley13
3年前
Java并发编程:Callable、Future和FutureTask
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。  这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。  如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。  而自从Java1.5开始,就提供了Callable和Future
Stella981 Stella981
3年前
Qt封装QTcpServer参考资料
首先说一下对多线程(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Flennard.yo2.cn%2Farticles%2Ftag%2F%25E5%25A4%259A%25E7%25BA%25BF%25E7%25A8%258B)这个名词的理解过程。以前听说过很多次多线程这个词,而且往往与
Wesley13 Wesley13
3年前
Java程序如何不产生垃圾
应用程序如何可以不产生垃圾看上去很难想象,而且这个话题已经复杂到超出本文讨论的范畴,但是如果考虑以下几个方面可能会容易理解:JVM将内存分成两个部分来管理:堆和栈。这就是为什么当缺少内存时会有两个不同的错误(OutOfMemoryError和StackOverflowError)。栈内存只能被当前线程和当前执行的方法访问,因此,当线程离开当前执行
聊聊JDK19特性之虚拟线程 | 京东云技术团队
1.前言在读《深入理解JVM虚拟机》这本书前两章的时候整理了JDK从1.0到最新版本发展史,其中记录了JDK这么多年来演进过程中的一些趣闻及引人注目的一些特性,在调研JDK19新增特性的时候了解到了虚拟线程这个概念,于是对虚拟线程进行学习整理内容如下。2.