多线程
文章平均质量分 94
莫秃
没有人比我更懂bug
展开
-
深入理解JAVA多线程---线程池
线程池什么是线程池?线程池的优势线程池如何使用?线程池的主要参数任务缓存队列拒绝策略线程池的任务处理策略线程池的关闭什么是线程池?多线程的异步执行方式可以极大发挥出计算机的优势,但是频繁的创建和结束线程对系统的开销十分巨大,如果不加以控制可能会造成负面影响.因此引入了线程池来管理创建的线程.为了避免重复的创建线程,线程池的出现可以让线程进行复用。通俗点讲,当有工作来,就会向线程池拿一个线程,当工作完成后,并不是直接关闭线程,而是将这个线程归还给线程池供其他任务使用。线程池的优势(1)降低系统资源消原创 2021-01-30 19:34:37 · 185 阅读 · 0 评论 -
深入理解JAVA多线程---对synchronized的锁优化
Synchronized优化前言JDK1.6之前JDK1.6之后一.锁升级偏向锁为什么引入偏向锁偏向锁的升级偏向锁的撤销偏向锁的取消轻量级锁为什么引入轻量级锁轻量级锁加锁轻量级锁解锁和膨胀几种锁的对比二.锁粗化三.锁消除前言在多线程并发编程中Synchronized一直是元老级的角色,很多人都称呼它为重量级锁.但是随着JDK1.6对Synchronized进行了各种优化之后,有些情况下它并不呢么重了,那么接下来我们就学习一下究竟进行了那些优化.JDK1.6之前在JDK1.6之前Synchronize原创 2021-01-15 23:08:32 · 176 阅读 · 0 评论 -
深入理解JAVA多线程---对象及变量的并发访问(synchronized和volatile关键字)
synchronized和volatile关键字前言线程不安全问题解决线程不安全问题synchronized实现原理volatile前言在多线程开发过程中,难免遇到很多线程不安全的问题,例如多个线程对一个变量进行访问和修改,就会产生"脏读".因此利用好synchronized和volatile关键字是多线程的关键一步.线程不安全问题首先我们来看一段线程不安全的代码:public class synchronizedAndVolatile { public static int i = 0;原创 2021-01-13 23:46:03 · 204 阅读 · 0 评论 -
深入理解JAVA多线程---多线程的常用操作
多线程常用操作线程启动(start())线程名称的设置和获取线程休眠(sleep())线程让步(yield())等待线程终止(join())线程停止运行(wait())唤醒线程(notify())唤醒全部线程(notifyAll())线程的停止线程的优先级线程启动(start())上文中已将提到了线程的几种创建方法,当线程创建后调用start()方法就可以启动线程了. //线程类继承Runnable接口 static class MyThread implements Runnable{原创 2021-01-09 00:25:24 · 126 阅读 · 0 评论 -
深入理解JAVA多线程---线程的几种创建方法
多线程前言什么是进程?前言现代计算机的处理能力越发的强大,多线程可谓是程序员必须要熟练应用的技能,本人将记录自己学习多线程总结出来的要点希望对读者有一丝的启发.文章大部分来自书籍JAVA多线程编程核心技术,也推荐大家对多线程有一定了解后去品读一定会有很多的收获.什么是进程?在学习多线程之前我们必须要对进程和线程有着很清晰的认识.进程:...原创 2021-01-03 00:51:54 · 386 阅读 · 1 评论