首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
角落里的一颗小草
更多收藏集
微信扫码分享
微信
新浪微博
QQ
25篇文章 · 0订阅
资深消防猿为你解读Java多线程与并发模型之共享对象
互联网上充斥着对Java多线程编程的介绍,每篇文章都从不同的角度介绍并总结了该领域的内容。但大部分文章都没有说明多线程的实现本质,没能让开发者真正“过瘾”。 以下内容如无特殊说明均指代Java环境。 使用Java编写线程安全的程序关键在于正确的使用共享对象,以及安全的对其进行访…
java编程思想之并发(死锁)
一个对象可以有 synchronized 方法或其他形式的加锁机制来防止别的任务在互斥还没有释放的时候就访问这个对象。 任务有可能变成阻塞状态,所以就可能发生这样的情况:某个任务在等待另一个任务,而后者又在等待别的任务,这样一直下去,直到这个链条上的任务又在等待第一个任务释放锁…
并发编程(6)HandlerThread源码分析
前面分析了很多并发编程方面的东西,但是都是Java层面的,其实Google原生也提供了一些类方便我们进行并发编程,比较常见的有HandlerThread,IntentService,AsyncTask,除此之外还有一些第三方框架Volley,Picasso等。 研究这些类以及开…
并发编程的锁机制:synchronized和lock
并发编程中,锁是经常需要用到的,今天我们一起来看下Java中的锁机制:synchronized和lock。 锁的种类挺多,包括:自旋锁、自旋锁的其他种类、阻塞锁、可重入锁、读写锁、互斥锁、悲观锁、乐观锁、公平锁、可重入锁等等,其余就不列出了。我们这边重点看如下几种:可重入锁、读…
Java并发工具类(信号量Semaphore)
计数信号量用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。信号量还可以用来实现某种资源池,或者对容器施加边界。 Semaphore管理着一组许可(permit),许可的初始数量可以通过构造函数设定,操作时首先要获取到许可,才能进行操作,操作完成后需要释放…
ThreadLocal源码深度剖析
ThreadLocal的作用是提供线程内的局部变量,说白了,就是在各线程内部创建一个变量的副本,相比于使用各种锁机制访问变量,ThreadLocal的思想就是用空间换时间,使各线程都能访问属于自己这一份的变量副本,变量值不互相干扰,减少同一个线程内的多个函数或者组件之间一些公共…
多线程知识梳理(8) - volatile 关键字
在程序的执行过程中,涉及到两个方面:指令的执行和数据的读写。其中指令的执行通过处理器来完成,而数据的读写则要依赖于系统内存,但是处理器的执行速度要远大于内存数据的读写,因此在处理器中加入了高速缓存。在程序的执行过程中,会 先将数据拷贝到处理器的高速缓存中,待运算结束后再回写到系…
Java并发编程序列之JUC中Condition线程通讯
Hello,大家好,前面给大家讲解synchronized关键字时给大家讲了下线程间的通讯,wait和notify.这两个API都是定义在Object中的方法,今天要给大家讲的是JUC中的Condition接口来实现线程间通讯,该通讯方式比较灵活一点。文章结构: Conditi…
java编程思想之并发(线程之间的协作)
当你使用多线程来同时运行多个任务时,可以通过使用锁来同步两个任务的行为,从而使的一个任务不会干涉另一个任务的资源。也就是说,如果两个任务交替的步入某项共享资源,你可以使用互斥来保证任何时刻只有一个任务可以访问这项资源。 上面的问题已经解决了,下一步是如何使得任务彼此之间可以协作…