高并发多线程
文章平均质量分 81
~小龙~
勇往直前,不停奋斗!!!
展开
-
Java并发编程-点点滴滴
总:并发编程是提供程序执行效率、充分发挥多核CPU的直接方法,这篇,看下并发编程的点点滴滴,先看概况图:一,先看底层基础,也是支撑并发编程的基础,也就是计算机的底层支持:二,Jvm内存模型,属于逻辑内存模型:三 ,支撑并发编程的CPU缓存一致性协议MESI: MESI是指Cache line4种状态的首字母;M修改-Modified,E独享、互斥-Exclusive,S共享-Shared,I无效-Invalid。更多了解:https://www.cnblogs....原创 2021-09-05 20:35:34 · 526 阅读 · 0 评论 -
JVM(六)——高效并发
前边其实我们已经梳理总结了多线程相关知识:Java高并发——多线程 ,这篇,我们再从JVM的角度,来看看高效并发。 JAVA内存模型: 1,在前边我们学习Java内存区域管理中,像程序计数器、栈为线程独享的,堆和方法区为线程共享的。在JVM中对于对线程,也分为工作内存和主内存,其实也可以简单理解为上边两种。看下模型图: 2,看下上边...原创 2019-01-27 15:23:03 · 633 阅读 · 1 评论 -
Java高并发(八)——Thread pool 如何创建及常见并行模式
在前边 Java高并发(四)——ThreadPool,线程复用 中我们学习了ThreadPool,但是在那篇中我们在create Thread pool的时候,由于我安装了阿里的开发规范插件,一直在警告我。这篇我们先看下警告,然后再看下并行开发中常见的模式。 一,如何更合理的创建ThreadPool: 1,警告:手动创建线程池,效果会更好哦!//...原创 2018-12-15 23:16:20 · 6623 阅读 · 1 评论 -
Java高并发(七)——Future模式
大家想下,多线程处理提高性能的根本本质在哪?其实就是将串行的处理步骤进行并行的处理,其实总时间是没有缩短的。也就是以前一个人干活需要10个小时,而十个人干同样的活需要1小时,从而缩短处理时间。但是如果干活有先后限制怎么办?例如工作中:测试前必须编码,编码前必须设计,设计前必须需求分析,分析前……如何提高这种情况的性能呢?或者说是如何让这中情况下的线程更加充分利用呢?Future模式—...原创 2018-12-09 18:41:47 · 5447 阅读 · 1 评论 -
Java高并发(六)——ThreadLocal为线程保驾护航
前边我们讲述多线程交互,多线程引起的安全问题,多线程安全的问题解决同步(synchronized、lock、CAS)……这一切的一切起源就是共享资源,共享临界区的数据安全引起的。那我们从另外一个角度想想呢?每个线程有自己的一份数据,是不是就会避免共享资源的数据问题了?ThreadLocal就是从这个角度出发而产生的,好,下边我们重点看看这个东东。 一,简单使用:Thr...原创 2018-12-09 13:49:15 · 764 阅读 · 1 评论 -
Java高并发(五)——Lock优化,提高性能
前边我们讲了,多线程的世界,多线程的基础操作,多线程协作,多线程管理——线程池。其中多线程为什么麻烦,就因为线程并行操作,对共享资源的争夺,会出现线程安全问题。而我们解决线程安全问题的方案是同步(锁资源,串行使用),串行就会出现性能问题。举个例子:大家在大道上并行前进的几列人(多线程并发),突然遇到河流,只有一个独木桥,大家只能一个个过(锁共享资源,串行使用)。显而易见,时间更多的消...原创 2018-12-06 01:31:42 · 3182 阅读 · 1 评论 -
Java高并发(四)——ThreadPool,线程复用
前边我们讲述了:Java高并发——了解并行世界、Java高并发——多线程基础、Java高并发——多线程协作,同步控制 。从1,线程是什么?为什么需要多线程?2,Java对多线程的基础操作:线程的状态扭转,线程的创建、终止、中断、等待和通知、挂起和执行、等待结束和谦让,volatile关键字,线程组进行分类管理,守护线程,线程优先级,线程共享资源安全和synchronized进行控制...原创 2018-11-25 01:49:58 · 18544 阅读 · 2 评论 -
Java高并发(三)——多线程协作,同步控制
继上一篇:Java高并发——多线程基础 中讲到,共享资源的合理使用,才能够使多线程程序有条不紊的运行。其中我们通过synchronized来实现临界区资源的是否可以访问。而,这篇我们来重点总结synchronized的增强替代版锁,以及其它JDK并发包提供的一些同步控制的功能。 好,还是先看下知识的总结思维导图,然后分开进行总结: 一,Reentran...原创 2018-11-21 01:14:26 · 1892 阅读 · 0 评论 -
Java高并发(二)——多线程基础
在上一篇 JAVA高并发——了解并行世界 中我们回顾了一些多线程的概念知识。这里先举个例子,来看现实生活中的多线程例子:一个家庭中有爸爸、妈妈、儿子,家中有电视、洗衣机、书桌等,如果妈妈领着儿子出去了,爸爸就可以想干什么干什么(单线程);如果三人都在家,妈妈可以洗衣服、爸爸在书桌上工作、儿子看动画片(三个线程使用不同的资源互不影响);如果儿子看动画片,爸爸想看NBA视频,就得等着儿子...原创 2018-11-18 23:50:47 · 1158 阅读 · 1 评论 -
JAVA高并发(一)——了解并行世界
最近不知道怎么了,感觉什么东西都需要画画图,梳理梳理思路、写写,而且每每晚上坐到自己的位置上,打开本书,打开篇文章,打开思维导图,打开onenote,再打开音乐,然后就开始静静理解着,梳理着,画图着,编写着……感觉心情也能平静下来。netty源码还需要多花点时间理解理解,周末再进行;今天开始把Java高并发多线程的知识也回顾整理一吧。 以前学习高并发多线程的过程,现...原创 2018-11-14 00:52:01 · 1888 阅读 · 0 评论