E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Java高并发
java高并发
系列 - 第10天:线程安全和synchronized关键字
这是并发系列第10篇文章。什么是线程安全?当多个线程去访问同一个类(对象或方法)的时候,该类都能表现出正常的行为(与自己预想的结果一致),那我们就可以所这个类是线程安全的。看一段代码:packagecom.itsoku.chat04;/***微信公众号:javacode2018,获取年薪50万课程*/publicclassDemo1{staticintnum=0;publicstaticvoidm
路人甲Java
·
2019-07-24 11:25
多线程
高并发
juc
java并发系列
java高并发
系列 - 第9天:用户线程和守护线程
守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程、JIT线程都是守护线程。与之对应的是用户线程,用户线程可以理解为是系统的工作线程,它会完成这个程序需要完成的业务操作。如果用户线程全部结束了,意味着程序需要完成的业务操作已经结束了,系统可以退出了。所以当系统只剩下守护进程的时候,java虚拟机会自动退出。java线程分为用户线程和守护线程,线程的daemon属性为tru
路人甲Java
·
2019-07-24 10:25
多线程
高并发
juc
java并发系列
java高并发
系列 - 第8天:线程组
线程组我们可以把线程归属到某个线程组中,线程组可以包含多个线程以及线程组,线程和线程组组成了父子关系,是个树形结构,如下图:使用线程组可以方便管理线程,线程组提供了一些方法方便方便我们管理线程。创建线程关联线程组创建线程的时候,可以给线程指定一个线程组,代码如下:packagecom.itsoku.chat02;importjava.util.concurrent.TimeUnit;/***des
路人甲Java
·
2019-07-24 10:13
多线程
juc
高并发
java并发系列
java高并发
系列 - 第7天:volatile与Java内存模型
publicclassDemo09{publicstaticbooleanflag=true;publicstaticclassT1extendsThread{publicT1(Stringname){super(name);}@Overridepublicvoidrun(){System.out.println("线程"+this.getName()+"in");while(flag){;}Sy
路人甲Java
·
2019-07-24 10:22
多线程
juc
高并发
java并发系列
java高并发
系列 - 第6天:线程的基本操作,必备技能
新建线程新建线程很简单。只需要使用new关键字创建一个线程对象,然后调用它的start()启动线程即可。Threadthread1=newThread1();t1.start();那么线程start()之后,会干什么呢?线程有个run()方法,start()会创建一个新的线程并让这个线程执行run()方法。这里需要注意,下面代码也能通过编译,也能正常执行。但是,却不能新建一个线程,而是在当前线程中
路人甲Java
·
2019-07-24 10:30
多线程
juc
高并发
java并发系列
java高并发
系列 - 第5天:深入理解进程和线程
进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程具有的特征:动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的并发性:任何进程都可以同其他进行一起并发执行独立性:进程是系统进行资源分配和调度的一个独立单位结构性:进程由程序,数据和
路人甲Java
·
2019-07-24 10:27
多线程
高并发
juc
java并发系列
java高并发
系列 - 第4天:JMM相关的一些概念
JMM(java内存模型),由于并发程序要比串行程序复杂很多,其中一个重要原因是并发程序中数据访问一致性和安全性将会受到严重挑战。如何保证一个线程可以看到正确的数据呢?这个问题看起来很白痴。对于串行程序来说,根本就是小菜一碟,如果你读取一个变量,这个变量的值是1,那么你读取到的一定是1,就是这么简单的问题在并行程序中居然变得复杂起来。事实上,如果不加控制地任由线程胡乱并行,即使原本是1的数值,你也
路人甲Java
·
2019-07-24 10:28
多线程
juc
高并发
java并发系列
java高并发
系列 - 第3天:有关并行的两个重要定律
有关为什么要使用并行程序的问题前面已经进行了简单的探讨。总的来说,最重要的应该是处于两个目的。第一,为了获得更好的性能;第二,由于业务模型的需要,确实需要多个执行实体。在这里,我将更加关注第一种情况,也就是有关性能的问题。将串行程序改造为并发程序,一般来说可以提高程序的整体性能,但是究竟能提高多少,甚至说究竟是否真的可以提高,还是一个需要研究的问题。目前,主要有两个定律对这个问题进行解答,一个是A
路人甲Java
·
2019-07-24 10:41
多线程
juc
高并发
java并发系列
java高并发
系列 - 第2天:并发级别
由于临界区的存在,多线程之间的并发必须受到控制。根据控制并发的策略,我们可以把并发的级别分为阻塞、无饥饿、无障碍、无锁、无等待几种。阻塞一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法继续执行。当我们使用synchronized关键字或者重入锁时,我们得到的就是阻塞的线程。synchronize关键字和重入锁都试图在执行后续代码前,得到临界区的锁,如果得不到,线程就会被挂起等待,直到占有
路人甲Java
·
2019-07-24 10:21
多线程
juc
高并发
java并发系列
java高并发
系列 - 第1天:必须知道的几个概念
同步(Synchronous)和异步(Asynchronous)同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。整个过程,不会阻碍调用者的工作。如图:上图中显示了同步方法调用和异步方法调用的区别。对于调用
路人甲Java
·
2019-07-24 10:46
多线程
juc
高并发
java并发系列
Java高并发
编程详解系列-不可变对象设计模式
导语 在开发中涉及到的所有关于多线程的问题都离不开共享资源的存在。那么什么是共享资源,共享资源就是被多个线程共同访问的数据资源,而且每个线程都会引起它的变化。伴随共享资源而生的新问题就是线程安全,线程安全的主要目的就在于受控制的并发访问中防止数据发生变化。这里的控制手段除了synchronized关键字对资源进行同步读写操作以外,还可以在线程之间不共享资源状态,或者将资源状态设置为不可改变。
nihui123
·
2019-07-22 15:13
高并发
Java高并发
java高并发
系列 - 第16天:JUC中等待多线程完成的工具类CountDownLatch,必备技能
这是
java高并发
系列第16篇文章。
路人甲Java
·
2019-07-22 15:00
java高并发
系列 - 第15天:JUC中的Semaphore,最简单的限流工具类,必备技能
这是
java高并发
系列第15篇文章Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized和重入锁ReentrantLock,这2种锁一次都只能允许一个线程访问一个资源
路人甲Java
·
2019-07-22 09:00
个人总结7月21号
今天下午给大家讲了讲
Java高并发
的基础知识。
H_Ystar
·
2019-07-21 17:05
个人总结
java高并发
系列 - 第14天:JUC中的LockSupport工具类,必备技能
这是
java高并发
系列第14篇文章。
路人甲Java
·
2019-07-20 17:00
java高并发
系列 - 第13天:JUC中的Condition对象
本文目标:synchronized中实现线程等待和唤醒Condition简介及常用方法介绍及相关示例使用Condition实现生产者消费者使用Condition实现同步阻塞队列Object对象中的wait(),notify()方法,用于线程等待和唤醒等待中的线程,大家应该比较熟悉,想再次了解的朋友可以移步到线程的基本操作synchronized中等待和唤醒线程示例packagecom.itsoku
路人甲Java
·
2019-07-20 17:00
java高并发
系列 - 第12天JUC:ReentrantLock重入锁
java高并发
系列-第12天JUC:ReentrantLock重入锁本篇文章开始将juc中常用的一些类,估计会有十来篇。
路人甲Java
·
2019-07-17 19:00
java高并发
系列 - 第11天:线程中断的几种方式
java高并发
系列第11篇文章。本文主要探讨一下中断线程的几种方式。
路人甲Java
·
2019-07-17 09:00
java高并发
系列 - 第10天:线程安全和synchronized关键字
这是并发系列第10篇文章。什么是线程安全?当多个线程去访问同一个类(对象或方法)的时候,该类都能表现出正常的行为(与自己预想的结果一致),那我们就可以所这个类是线程安全的。看一段代码:packagecom.itsoku.chat04;/***微信公众号:路人甲Java,专注于java技术分享(带你玩转爬虫、分布式事务、异步消息服务、任务调度、分库分表、大数据等),喜欢请关注!*/publiccla
路人甲Java
·
2019-07-17 09:00
java高并发
系列 - 第9天:用户线程和守护线程
守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程、JIT线程都是守护线程。与之对应的是用户线程,用户线程可以理解为是系统的工作线程,它会完成这个程序需要完成的业务操作。如果用户线程全部结束了,意味着程序需要完成的业务操作已经结束了,系统可以退出了。所以当系统只剩下守护进程的时候,java虚拟机会自动退出。java线程分为用户线程和守护线程,线程的daemon属性为tru
路人甲Java
·
2019-07-15 17:00
java高并发
系列 - 第8天:线程组
线程组我们可以把线程归属到某个线程组中,线程组可以包含多个线程以及线程组,线程和线程组组成了父子关系,是个树形结构,如下图:使用线程组可以方便管理线程,线程组提供了一些方法方便方便我们管理线程。创建线程关联线程组创建线程的时候,可以给线程指定一个线程组,代码如下:packagecom.itsoku.chat02;importjava.util.concurrent.TimeUnit;/***des
路人甲Java
·
2019-07-15 17:00
java高并发
系列 - 第7天:volatile与Java内存模型
publicclassDemo09{publicstaticbooleanflag=true;publicstaticclassT1extendsThread{publicT1(Stringname){super(name);}@Overridepublicvoidrun(){System.out.println("线程"+this.getName()+"in");while(flag){;}Sy
路人甲Java
·
2019-07-15 17:00
java高并发
系列 - 第6天:线程的基本操作
新建线程新建线程很简单。只需要使用new关键字创建一个线程对象,然后调用它的start()启动线程即可。Threadthread1=newThread1();t1.start();那么线程start()之后,会干什么呢?线程有个run()方法,start()会创建一个新的线程并让这个线程执行run()方法。这里需要注意,下面代码也能通过编译,也能正常执行。但是,却不能新建一个线程,而是在当前线程中
路人甲Java
·
2019-07-15 17:00
java高并发
系列 - 第5天:深入理解进程和线程
进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程具有的特征:动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的并发性:任何进程都可以同其他进行一起并发执行独立性:进程是系统进行资源分配和调度的一个独立单位结构性:进程由程序,数据和
路人甲Java
·
2019-07-15 17:00
java高并发
系列 - 第4天:JMM相关的一些概念
JMM(java内存模型),由于并发程序要比串行程序复杂很多,其中一个重要原因是并发程序中数据访问一致性和安全性将会受到严重挑战。如何保证一个线程可以看到正确的数据呢?这个问题看起来很白痴。对于串行程序来说,根本就是小菜一碟,如果你读取一个变量,这个变量的值是1,那么你读取到的一定是1,就是这么简单的问题在并行程序中居然变得复杂起来。事实上,如果不加控制地任由线程胡乱并行,即使原本是1的数值,你也
路人甲Java
·
2019-07-15 17:00
java高并发
系列 - 第3天:有关并行的两个重要定律
有关为什么要使用并行程序的问题前面已经进行了简单的探讨。总的来说,最重要的应该是处于两个目的。第一,为了获得更好的性能;第二,由于业务模型的需要,确实需要多个执行实体。在这里,我将更加关注第一种情况,也就是有关性能的问题。将串行程序改造为并发程序,一般来说可以提高程序的整体性能,但是究竟能提高多少,甚至说究竟是否真的可以提高,还是一个需要研究的问题。目前,主要有两个定律对这个问题进行解答,一个是A
路人甲Java
·
2019-07-15 17:00
java高并发
系列 - 第2天:并发级别
由于临界区的存在,多线程之间的并发必须受到控制。根据控制并发的策略,我们可以把并发的级别分为阻塞、无饥饿、无障碍、无锁、无等待几种。阻塞一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法继续执行。当我们使用synchronized关键字或者重入锁时,我们得到的就是阻塞的线程。synchronize关键字和重入锁都试图在执行后续代码前,得到临界区的锁,如果得不到,线程就会被挂起等待,直到占有
路人甲Java
·
2019-07-15 17:00
【源码版】基于SpringMVC的电商高并发秒杀系统设计思路
参考博客
Java高并发
秒杀系统API源码地址https://download.csdn.net/download/g290095142/10594757没有积分的加我微信索取目录业务场景要解决的问题Redis
网瘾少年安涂
·
2019-07-15 08:00
电商
Java
java高并发
系列 - 第1天:必须知道的几个概念
java高并发
系列-第1天:必须知道的几个概念同步(Synchronous)和异步(Asynchronous)同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为
路人甲Java
·
2019-07-14 20:00
Java高并发
与JVM
1、
Java高并发
1.1CPUcache所有的计算都是由CPU进行操作的,然而CPU的读写速度远远大于MainMemory的读写速度,故在CPU中添加了高速缓存,缓存分为3级,每一级都是都是由指令和数据构成
qq_32641659
·
2019-07-02 14:57
JVM
慕课网_Java秒杀系统方案优化-高性能高并发实战_项目笔记
第1章-课程介绍及项目框架搭建1-1
java高并发
商城秒杀优化导学1-2项目环境搭建(Eclipse)SpringBootHelloWorld1.新建SpringBoot项目使用IDEA新建SpringBoot
4change
·
2019-06-22 15:46
project
Java高并发
程序设计 | 01 详解java的volatile关键字
目录同步与异步,并行和并发死锁、饥饿、活锁线程并发级别Java内存模型JMM的关键技术点原子性可见性有序性不能重排的指令:Happens-Before原则深入理解volatile关键字volatile的作用volatile的实现原理volatile的应用场景同步与异步,并行和并发同步和异步通常用来形容一次方法调用。同步方法调用一开始,调用者需要等待方法调用结束,才能继续后续的行为。异步方法通常在另
小尘鸟_
·
2019-06-18 11:12
Java多线程编程
Java高并发
秒杀平台(Redis + RabbitMQ)
Seconds-Kill本项目是一个模拟高并发环境下基于SpringBoot的秒杀购物平台。为了减少对数据库的直接访问,通过Redis实现了缓存优化;并通过RabbitMQ消息中间件来接收大量的并发请求,实现异步和削峰,然后再慢慢地更新数据库。最后通过Jmeter压测工具,可以很好地对比优化前后的QPS…项目的源代码:基于SpringBoot的高并发秒杀平台quick-start项目的基本配置及背
HUANG Zichen
·
2019-06-16 20:12
Java
研发
《
Java高并发
编程详解》读书笔记--快速认识线程和深入理解Thread的构造函数
第一章快速认识线程模板设计模式Thread的run和start就是一个比较典型的模板设计模式,父类编写算法结构代码,子类实现逻辑细节,示例:publicclassTemplatePattern{//程序结构由父类控制,并且是final的方法,不允许被重写publicfinalvoidprint(Stringmessage){System.out.println("#################
造一个大大的轮子
·
2019-06-05 10:06
Android高级开发书籍
中文版(如何写好的Java代码)Java解惑(介绍烂Java代码是什么样的)(b)多线程、并发Java并发编程实战(系统全面的介绍了Java的并发,如何设计支持并发的数据结构)java多线程编程核心技术
Java
CTO_1649900265
·
2019-06-02 21:17
android
Java高并发
编程详解系列-Volatile关键字
在之前的分享中,提到了多线程的类加载机制,说道了线程上下文类加载器,也介绍关于多线程中的内存使用情况,提到了一个关键字volatile,介绍了CPU的缓存机制,介绍了Java内存模型。下面就来介绍一下并发编程中的最为中要的三个特点。并发编程三大特性原子性 所谓的原子性在之前的博客中或者是在网上其他资料上都有所提及到。是指在一次的操作或者多次的操作过程中,要么所有的需要的操作全部都执行,要么就是所
nihui123
·
2019-05-30 18:43
高并发
Java高并发
Java高并发
商城秒杀优化学习笔记
课程介绍什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。秒杀系统场景特点秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。秒杀一般是访问请求数量远远大于库存数量,只有少部分用户能够
pitt1997
·
2019-05-27 14:45
商城秒杀系统
锁的优化及注意事项
Java高并发
程序设计第4章目录一、提高锁性能的几点建议1.1减小锁持有时间1.2减小锁粒度1.3读写分离锁来替换独占锁1.4锁分离1.5锁粗化二、Java虚拟机对锁优化所做的努力2.1偏向锁2.2轻量级锁
demon7552003
·
2019-05-25 10:48
Java并发编程
Java基础知识
Java高并发
编程详解系列-内存模型
volatile关键字介绍,要了解volatile需要了解的还有Java内存模型,以及CPU内存模型等知识。首先从CPU和Java内存模型开始说起。CPUCache模型 在之前的时候,分享过一个博客一篇博客,就是关于介绍CPU与内存速度不匹配的问题,为了解决这个问题,在CPU和内存之间设计了高速缓存,这个高速缓存出现就是解决CPU和RAM主存之间的速度不匹配。现在CPU的缓存已经增加到了三层。其
nihui123
·
2019-05-22 16:19
高并发
Java高并发
Java高并发
分布式项目学习(9)
复盘九5.2实现商品的添加页面5.21参考easyUi文档的Form表单-商品名称nametextbox\-商品分类cidcomboboxhiddencategoryId-市场价格maketPricePreviewnumberboxhiddenmaketPrice\-商品价格pricePreviewnumberboxhiddenprice\-商品编号productNumbernumberboxpr
cf082430
·
2019-05-22 11:11
项目
Java高并发
分布式项目学习(5)
复盘五6.3使用SSM搭建rest服务系统6.31什么是REST?REST是设计分布式系统的体系结构样式。它不是标准的,而是一组约束,例如无状态,具有客户机/服务器关系和统一的接口,他和HTTP没有严格的关系,但它通常与HTTP关联。6.32使用REST的原则?-URI需要清晰易于理解比如/manong/rest/products/list这样我们就能明白是请求商品数据列表。-通过JSON或者XM
cf082430
·
2019-05-20 20:21
项目
Java高并发
编程详解系列-JVM类加载器
之前的博客中提到了类加载的过程,提到了双亲委托机制,提到了关于类加载器的概念,这篇博客就来给大家分享一下什么是JVM的类加载器。通过实战的方式来了解一下类加载器器到底是什么。JVM类加载器分类 类加载器就是在类加载的过程中负责对于class文件进行加载的对象。也就是说通过这类加载器来确定每个类与JVM的唯一性关系。对于任何一个对象在JVM都是唯一存在的。 在JVM中类加载器主要分为三类,按照接
nihui123
·
2019-05-12 18:01
高并发
Java高并发
Java高并发
编程详解系列-线程池原理自定义线程池
之前博客的所有内容是对单个线程的操作,例如有Thread和Runnable的使用以及ThreadGroup等的使用,但是对于在有些场景下我们需要管理很多的线程,而对于这些线程的管理有一个统一的管理工具叫做线程池,线程池就是管理很多的线程的一个集合。这篇分享中提出的一个就是关于线程池的概念。线程池原理 从JDK1.5开始,utils包提供了一个类ExecutorService,这个类是对线程池的实
nihui123
·
2019-05-10 21:35
高并发
Java高并发
并发 -
java高并发
解决方案
什么是并发问题:多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题。加锁方法:用synchronized关键字可以对资源加锁。用Lock关键字也可以,它是JDK1.5中新增内容。final Lock lock = new ReentrantLock();final Condition notFull = lock.newCondition();final Condition n
沙漏半杯
·
2019-05-09 19:31
java
高并发
java编程
Java高并发
秒杀——高并发优化
Java高并发
秒杀——高并发优化高并发优化:由于该系统还是存在高并发问题,并发访问量大概只有100左右,可以通过高并发优化将并发量提高到5000左右高并发优化分析目录 1、高并发优化分析 2、redis
Ambition小啊潇
·
2019-05-08 09:06
Java框架
java 高并发面试题
转载自
java高并发
面试题1、线程与进程进程是一个实体。
茅坤宝骏氹
·
2019-05-04 00:04
java面试
java
并发
Java高并发
编程详解系列-线程通信
进程间的通信,又被称为是进程内部的通信,我们都知道每个进程中有多个线程在执行,多个线程要互斥的访问共享资源的时候会发送对应的等待信号或者是唤醒线程执行等信号。那么这些信号背后还有什么样的技术支持呢?两种消息处理方式同步阻塞式消息处理 假设有这样的一个功能需要完成,每个客户端需要提交一个Event到服务器,而服务器接收到客户端请求之后开辟处理线程进行客户端请求处理操作,经过处理之后将结果返回。
nihui123
·
2019-05-03 23:39
高并发
Java高并发
Java高并发
编程之多线程基础
第一章认识多线程1.4线程的start方法剖析1.4.1Threadstart方法的源码publicsynchronizedvoidstart(){/***Thismethodisnotinvokedforthemainmethodthreador"system"*groupthreadscreated/setupbytheVM.Anynewfunctionalityadded*tothismet
大鹏视界U
·
2019-04-30 15:59
Java并发编程
Java高并发
分布式项目学习(3)
复盘三3.1第一部分显示商品列表树(tree)在网页中以树形结构显示分层数据。它向用户提供展开、折叠、拖拽、编辑和异步加载功能。-查看文档Tree.Treecanalsobedefinedinanemptyelementandloaddatausingjavascript-在common下创建一个返回类类成员是文档下的TreeDataformat树的数据格式id,text,state创建完需要ma
cf082430
·
2019-04-28 20:16
项目
Java高并发
编程详解系列-Java线程入门
根据自己学的知识加上从各个网站上收集的资料分享一下关于
java高并发
编程的知识点。对于代码示例会以Maven工程的形式分享到个人的GitHub上面。
nihui123
·
2019-04-27 22:01
高并发
Java高并发
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他