java多线程
文章平均质量分 89
简洁是智慧的灵魂
广东工业大学计算机科学与技术学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java-多线程深入(三)happens-before介绍
多线程操作中,需注意互斥性和可见性,重点了解下可见性。(一)可见性问题来源1.cpu和内存速度相差过高,引入缓存(cache、寄存器等);一个线程由线程id、指令计数器PC、寄存器集合和堆栈构成,详见《程序员的自我修养》。每个线程有自己的工作内存,修改进程主内存的值,都需要拷贝到工作内存修改后,再回写,其他现场可能出现,读取到未回写的脏数据。2.原创 2015-01-27 11:18:37 · 1537 阅读 · 0 评论 -
java-多线程深入(四)Volatile分析
(一)volatile的使用1、使用场景(1)状态标识。用于实时指示某个重要性事件的发生,比如完成初始化或者停机。volatile boolean toShutdown; ...... public void shutdown() { toShutdown = true; } public void doWork() { while (!原创 2015-01-31 08:26:51 · 1387 阅读 · 0 评论 -
java-多线程深入(一)JMM
(一)java内存区域概况jvm运行java程序时把所管理的内存分成几个部分:方法区、java栈、本地方法栈、java堆、pc程序计数器。class字节码装载解析后,在多线程环境中,方法区和java堆数据共享,每个线程自带pc程序计数器和java栈,栈帧中包含方法的所有状态(局部变量、传参、返回值、运算中间结果等)。对共享数据需要考虑多线程并发问题。更详细内容可参考《深入理解JVM虚拟原创 2015-01-20 09:16:27 · 1262 阅读 · 0 评论 -
java-多线程深入(二)互斥性和可见性
(一)互斥性互斥性,即原子性。原子,指最小的物质,具体不可再分性。CPU运算中,对多线程进行时间片分割执行,一个程序块执行时不可分割,即满足互斥性原子性。java中保证互斥性的方法:1.用sychronized锁住程序块,实行互斥synchronized (lock) { a++;}2.用Atomic对变量操作实行互斥public final stat原创 2015-01-26 10:12:35 · 3818 阅读 · 0 评论 -
java-多线程深入(五)Atomic分析
(一)Atomic的使用java.util.concurrent中提供了atomic原子包,可以实现原子操作(atomic operation),即在多线程环境中,执行的操作不会被其他线程打断。/** * atomic简单demo * * @author peter_wang * @create-time 2014-6-9 上午9:29:58 */public c原创 2015-05-28 08:41:11 · 5724 阅读 · 2 评论 -
java-线程池(二)
继上一篇java-线程池(一)原创 2014-05-23 08:37:59 · 1256 阅读 · 0 评论 -
java-多线程深入(六)锁
java多线程中提供的锁:synchronized和lock。(一)synchronized1、synchronized的使用每个对象都自带锁,锁可以同步实例方法(this是对象锁)、静态方法(class是对象锁)、方法块(synchronized参数是对象锁)原创 2015-08-19 07:48:35 · 868 阅读 · 0 评论 -
java-线程池(一)
性能优化中,其中一块是线程池的使用,初探线程池,从简单了解到源码分析,深入理解才能合理运用。(一)线程池的来源及优点单个异步任务,每次都需创建线程、销毁线程,当任务处理的时间短而请求数却巨大时,将导致资源消耗过多。比如,数据库连接,需消耗大量资源,建立线程池能重用数据库访问线程。使用线程池的优点:1.降低资源消耗。重用现有线程,减少线程创建销毁开销。2.提高原创 2014-05-23 08:13:54 · 1663 阅读 · 0 评论
分享