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并发
编程之同步与异步、阻塞与非阻塞
同步与异步被调用者是否主动告诉调用者结果,针对被调用者而言左图是同步的情况:客户端向服务器请求数据,在服务器准备数据期间,客户端需要不停的等待,无法做别的事右图是异步的情况:客户端向服务器请求数据,在服务器准备数据期间,客户端可以做其他的事情,直到服务器返回这个结果阻塞与非阻塞调用者在调用结果返回前,是否还能做别的事,针对调用者而言线程状态角度:是线程六中状态的其中三种(Block、Waiting
程序员铁蛋
·
2020-09-14 11:27
Java并发编程
多线程
(面试必备)常见问题集锦(1)
1、jdk1.8版本,
java并发
框架支持锁:https://blog.csdn.net/wenwen360360/article/details/622381402、HashMap,HashTable
恰克与飞鸟.
·
2020-09-14 10:28
JavaWeb
Java并发
编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内
greatau
·
2020-09-14 10:54
java
Java并发
编程中级篇(三):使用CountDownLatch控制多线程并发等待
2019独角兽企业重金招聘Python工程师标准>>>你是否遇到这这样一种情况,我们要举行一个视频会议,有若干的参会人员,需要等待所有的人员到齐后视频会议才能开始。为了解决这个问题,JavaAPI提供了一个线程同步辅助类CountDownLatch,使用这个辅助类可以让线程等待其它线程完成一组操作后才能执行,否则就一直等待。这个类使用一个整形参数来初始化,这个整形参数代表着等待其他线程的数量,使用
D_SJ
·
2020-09-14 08:19
Java并发
编程--CountDownLatch配合线程池
Java并发
编程–CountDownLatch配合线程池在处理一些耗时操作的时候,我们习惯上会把它放在子线程里面做,是的如果允许(我是指操作的内容),为了更快速地完成这堆操作,线程池是一个不错的选择。
索拉卡暴击
·
2020-09-14 07:21
Java并发编程
Java并发
编程(四)synchronized
Java并发
编程(四)synchronized一.synchronized同步方法或者同步块在了解synchronized关键字的使用方法之前,我们先来看一个概念:互斥锁,顾名思义:能到达到互斥访问目的的锁
龙恒.xu
·
2020-09-14 06:36
并发编程
Java并发
编程(三)Thread类的使用
一.线程的状态线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、timewaiting、waiting、消亡(dead)。当需要新起一个线程来执行某个子任务时,就创建了一个线程。但是线程创建之后,不会立即进入就绪状态,因为线程的运行需要一些条件(比如内存资源,在前面的JVM内存区域划
龙恒.xu
·
2020-09-14 06:36
Java并发
编程(一)线程定义、状态和属性
一、线程和进程1、什么是线程和进程的区别:线程是指程序在执行过程中,能够执行程序代码的一个执行单元。在java语言中,线程有四种状态:运行、就绪、挂起和结束。进程是指一段正在执行的程序。而线程有时也被成为轻量级的进程,他是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内空间(代码段、数据段和对空间)及一些进程级的资源(例如打开的文件),但是各个线程都拥有自己的栈空间。2、为何
龙恒.xu
·
2020-09-14 06:36
并发编程
Java并发
编程(二)同步
在多线程的应用中,两个或者两个以上的线程需要共享对同一个数据的存取。如果两个线程存取相同的对象,并且每一个线程都调用了修改该对象的方法,这种情况通常成为竞争条件。竞争条件最容易理解的例子就是:比如火车卖票,火车票是一定的,但卖火车票的窗口到处都有,每个窗口就相当于一个线程,这么多的线程共用所有的火车票这个资源。并且无法保证其原子性,如果在一个时间点上,两个线程同时使用这个资源,那他们取出的火车票是
龙恒.xu
·
2020-09-14 06:05
Java并发
编程:Callable、Future和FutureTask
Java并发
编程:Callable、Future和FutureTask在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。
sqiucheng
·
2020-09-14 04:44
java
【
Java并发
编程】2.线程的中断
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17091267使用interrupt()中断线程当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中
caedmom
·
2020-09-14 02:23
Java
Java并发
编程之常见线程不安全类与写法
线程不安全类:一个类的对象可以被多个线程访问修改,并且没有做任何的同步或者并发处理,就很容易出现线程安全问题。以下介绍几种常见的线程不安全类及其写法:一、StringBuilder,StringBuffer字符串拼接主要提供了两个类:StringBuilder,StringBufferStringBuilder字符串拼接测试:@Slf4jpublicclassStringExample1{//请求
白玉灬风
·
2020-09-14 00:50
Java并发编程
Java并发
编程:volatile关键字解析(转)
本文转自:https://www.cnblogs.com/dolphin0520/p/3920373.htmlvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由
dawoqiao6433
·
2020-09-13 21:33
java
运维
操作系统
JUC中常见队列介绍及实现原理
前言
Java并发
编程中总离不开线程池的管理和使用,而线程池的线程执行与阻塞机制只要依赖于其使用的队列。
识1DD编程
·
2020-09-13 20:13
并发编程
java
并发编程
Java中的线程池详解与SpringBoot线程池扩展
部分内容摘自《
Java并发
编程的艺术》池化技术池化技术的主要目的在应用启动时预先保存一些资源放到池中管理,当需要获取资源时可以直接从池中获取,使用完毕后重新放回池中,从而减少资源创建与销毁的消耗。
识1DD编程
·
2020-09-13 20:13
并发编程
多线程
并发编程
java
如何才能够系统地学习
Java并发
技术?
微信公众号【Java技术江湖】一位阿里Java工程师的技术小站
Java并发
编程一直是Java程序员必须懂但又是很难懂的技术内容。这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类。
weixin_30569153
·
2020-09-13 20:59
java
数据结构与算法
面试
第1章:并发编程的挑战
文章目录上下文切换减少上下文切换的方法死锁避免死锁的几个常见方法ps:本文属个人读书笔记摘要,内容摘自《
Java并发
编程的艺术》,不具备系统性教学及指导意义。
庄稼还没收割完
·
2020-09-13 19:31
如何实现一个权限管理系统?(附源码)
源码解析数据库中间件Sharding-JDBC和MyCAT源码解析作业调度中间件Elastic-Job源码解析分布式事务中间件TCC-Transaction源码解析Eureka和Hystrix源码解析
Java
芋道源码
·
2020-09-13 18:40
Java并发
编程 - 一段代码解释 ThreadLocal 特性
/***@authorLuxSun*@date2020/9/10*/publicclassdemoimplementsRunnable{privatestaticThreadLocalthreadLocal=newThreadLocal<>();@Overridepublicvoidrun(){System.out.println(threadLocal.get());//nullthreadLo
Lux_Sun
·
2020-09-13 18:09
#
并发
&
线程
Java
并发编程
ThreadLocal
多线程
高并发
JAVA栅栏和闭锁的区别
最近在看
java并发
相关的书籍,有一些同步的知识是平常不常用但是觉得会很有用的东西,这里参考别人的文章和自己的理解,将闭锁和栅栏的用途与区别简单描述一下。
x329357842
·
2020-09-13 14:53
多线程
如何快速判断某 URL 是否在 20 亿的网址 URL 集合中?
源码解析数据库中间件Sharding-JDBC和MyCAT源码解析作业调度中间件Elastic-Job源码解析分布式事务中间件TCC-Transaction源码解析Eureka和Hystrix源码解析
Java
公众号-芋道源码
·
2020-09-13 11:18
Phaser 线程的阶段化处理
从JDK1.7版本开始引入类Phaser,它是
Java并发
库功能强大并且较复杂的一个功能,可以用来完成阶段式的并发执行任务的功能。
dong_dong2211
·
2020-09-13 11:17
线程的同步障栅
MoreThread
Phaser
线程的阶段化处理
Guava包RateLimiter实现接口API限流
实际业务在每次响应请求之前都从桶中获取令牌,只有取到令牌的请求才会被成功响应,获取的方式有两种:阻塞等待令牌或者取不到立即返回失败,下图来自网上:Guava提供的RateLimiter可以限制物理或逻辑资源的被访问速率,有点与
java
程序猿微刊
·
2020-09-13 11:05
【Guava】
灵魂拷问,AQS 是个啥???
如果想要精通
Java并发
的话,AQS是一定要掌握的。
javageektech
·
2020-09-13 10:42
伙计,提高自己的并发技能,从锁优化开始!
本文主要介绍
Java并发
中的进行的锁优化如有需要,可以参考如有帮助,不忘点赞❥锁是最常用的同步方法之一。在高并发的环境下,激烈的锁竞争会导致程序的性能下降。
蔡不菜丶
·
2020-09-13 09:18
Java
并发编程
java
多线程
锁
图解并发与并行-分别从CPU和线程的角度理解
本文作为图解
java并发
编程的第三篇,前2篇访问地址如下所示:图解进程线程、互斥锁与信号量-看完还不懂你来打我8成以上的java线程状态图都画错了--图解
java并发
第二篇一、CPU角度的并发与并行并发曾经我作为一个不是很爱学习的孩子
字母哥博客
·
2020-09-13 09:00
Java并发
编程-并发工具类及线程池
JUC中提供了几个比较常用的并发工具类,比如CountDownLatch、CyclicBarrier、Semaphore。CountDownLatch:countdownlatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完毕再执行。从命名可以解读到countdown是倒数的意思,类似于我们倒计时的概念。countdownlatch提供了两个方法,一个是countDow
weixin_30762087
·
2020-09-13 09:52
Java并发
编程系列之二十五:线程池
线程池简介在之前介绍Executor框架的文章中对线程池有一个初步的认识,实际上线程池这种设计思想在Java中很普遍,比如JVM中常量池,以及Web开发使用到的数据库连接池。这些池本质上还是Java中的对象池,因为池中存放的都是Java对象。回到线程池,几乎所有需要异步或者执行并发任务的程序都可以使用到线程池。使用线程池带来的好处主要包括以下几个方面:一,提高资源利用率。由于线程池中的线程使可以重
rhwayfunn
·
2020-09-13 09:47
并发编程
Java并发
——Executor框架ScheduledThreadPoolExecutor详解
ScheduledThreadPoolExecutor类继承了ThreadPoolExecutor并实现了ScheduledExecutorService接口。主要用于在给定的延迟后执行任务或者定期执行任务。作用类似于java.util包下的Timer类,但是比Timer功能更强大、更灵活,因为Timer只能控制单个线程延迟或定期执行,而ScheduledThreadPoolExecutor对应的
tongdanping
·
2020-09-13 08:57
Java并发
Java多线程入门简介
Java并发
简介Java平台包括一个并发实用程序包。这些类被设计用来作为构建并发类或应用程序的构建块。
陈年字题轩楼
·
2020-09-13 08:06
Java并发
Volatile原理深度剖析
熟悉
Java并发
编程的程序员应该对于volatile,synchronized关键都不陌生,这两个关键字是并发编程的基础,在之前笔者看过很多关于volatile关键字的解析博客,讲述的也比较详细,但是感觉不是很全面
不清不慎
·
2020-09-13 08:01
Java多线程
《
Java并发
库系列三》一newSingleThreadScheduledExecutor
newSingleThreadScheduledExecutor:产生一个ScheduledExecutorService对象,这个对象的线程池大小为1,如果任务多于一个,任务将按先后顺序执行。1、继承结构构造函数包含一个定时的servicepublicstaticScheduledExecutorServicenewSingleThreadScheduledExecutor(){returnne
香菜聊游戏
·
2020-09-13 08:35
Java
Java并发库
AbstractQueuedSynchronizer原理剖析
《
Java并发
编程的艺术》上一篇介绍ReentrantLock可重入锁时提到其底层实现为同步器,其内部定义一个静态内部类继承Abst
Tifkingsly
·
2020-09-13 08:17
java多线程
【
java并发
】线程并发库的使用
1.线程池的概念在java5之后,就有了线程池的功能了,在介绍线程池之前,先来简单看一下线程池的概念。假设我开了家咨询公司,那么每天会有很多人过来咨询问题,如果我一个个接待的话,必然有很多人要排队,这样效率就很差,我想解决这个问题,现在我雇几个客服,来了一个咨询的,我就分配一个客服去接待他,再来一个,我再分配个客服去接待……如果第一个客服接待完了,我就让她接待下一个咨询者,这样我雇的这些客服可以循
武哥聊编程
·
2020-09-13 08:55
●
编程语言
------【Java并发】
Java并发技术
java并发
之Semaphore
一、定义一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个acquire(),然后再获取该许可。每个release()添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore只对可用许可的号码进行计数,并采取相应的行动。Semaphore通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。二、使用场景代码示例比方说我们有
dichengyan0013
·
2020-09-13 08:48
AbstractQueueSynchronizer
AbstractQueueSynchronizer1.AbstractQueuedSynchronizer(以下简称AQS)是
Java并发
包提供的一个同步基础机制,是并发包中实现Lock和其他同步机制(
asd88679
·
2020-09-13 07:05
数据结构与算法
java
数据库
Java并发
编程基础-----volatile和伪共享
synchronized是Java提供的一种原子性的内置锁,其他对象可以将其作为一个同步锁使用,synchronized能够保证内存可见性和原子性,是一个重量级的锁,而有些时候只需要保证内存可见性即可的情况下,可以使用volatile关键字,用以保证变量的内存可见性。1volatile适用的情况写入变量值不依赖、变量的当前值时。因为如果依赖当前值,将是获取一计算一写入三步操作,这三步操作不是原子性
懒惰的小强!
·
2020-09-13 07:32
java并发编程
Java并发
库简介
1.传统线程创建方式集成Thread类,重写run方法;实现Runnable接口,重写run方法,并把Runnable的接口实现传给Thread。2.线程互斥技术----synchronizedsynchronized可用于方法和代码块中,在多个线程处理同一数据源时,防止出现并发问题。publicsynchronizedvoidMethod1(){......}synchronized(Objec
周士淼
·
2020-09-13 07:53
Java
java
并发库简介
多线程简介
【
java并发
】线程并发库的使用——CSDN博客
原文地址:http://blog.csdn.net/eson_15/article/details/51553597
武哥聊编程
·
2020-09-13 07:49
Java并发
库入门---线程连接池
Java的并发编程中较常用的是java.util.concurrent这个包,下面也是围绕这个包说明。该包主要有以下一些组件:执行程序(线程池)并发队列同步器并发Collocation什么是线程池?线程池就是限制系统中执行线程的数量,线程管理是一个棘手的问题,少了浪费了系统的资源,多了会造成系统的拥挤导致效率不高,而通过线程池,我们可以根据系统的运行情况,自动或者手动的设置线程的数量,达到最佳的运
自傷無色丶
·
2020-09-13 07:22
并发与多线程
漫谈并发编程:Actor模型
熟悉c和
java并发
编程的都会比较熟悉共享数据的策略,比如java程序员就会常用到java.util.concurrent包中同步、锁相关的数据结构。
木东居士
·
2020-09-13 07:25
Java并发
系列笔记之并发容器ConcurrentHashMap
线程不安全的HashMap多线程情况下,HashMap由于在扩容的时候会导致链变成环,在下一次查询的时候会使得出现死循环的出现。变成环的主要原因在于HashMap扩容的逻辑是不具有原子性的,扩容的基本逻辑包括下面三条:1.当前节点为e,获取当前节点的下一个节点next2.将e按照hash移到到扩容后的hash表中,置e.next等于newtable[i],头插法3.将e置为next进入下一次循环这
Wenqi_B
·
2020-09-13 06:21
Java并发
Java并发
系列笔记之线程池
线程池是资源复用的典范之作,其基本思想是维护一个含有一定数量的在运行的线程集合,在需要运行线程任务的时候直接从这个集合中取出一个线程去运行任务,而不是重新创建一个。如果我们自己去实现一个线程池,那么基本的想法是维护一个线程的集合,这些线程都从一个队列中去取任务,如果队列为空,则阻塞对应的线程,等待队列不空的消息通知。当线程完成了任务,应该将线程返回给线程队列,而不是关闭线程。基本思想是这样,那么J
Wenqi_B
·
2020-09-13 06:21
Java并发
Java并发
系列笔记之Java中的锁
锁是多线程下进行同步互斥的重要实现依托,Java语言中除了提供了使用synchronized关键字提供的隐式锁,也提供了以Lock接口定义的显示锁。一般Lock的子类实现依赖于一个抽象队列同步器(AbstractQueuedSynchronizer,AQS)的子类实现。AQS的目的是提供对同步状态的获取和释放的基础同步功能给依赖者使用,而屏蔽了同步状态获取和释放的具体实现。AQS是一个抽象类,它使
Wenqi_B
·
2020-09-13 06:21
Java并发
java
并发
AQS
CopytOnWriteArrayList
从JDK1.5开始
Java并发
包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。
qx5211258
·
2020-09-13 06:35
java基础
JAVA并发
编程(五)——性能优化(上)
在程序中加入锁是非常消耗性能的,对锁的申请和释放需要消耗大量的资源,所以我们需要对上锁的程序进行优化,在保证程序正确运行的前提下提高性能。我们能做的减小锁的占有时间减小锁的粒度用分离锁代替独占锁锁粗化JVM能做的锁偏向轻量级锁自旋锁锁消除ThreadLocal我们能做的减小锁的占有时间我们对比一下下面两个例子:publicsynchronizedvoidf(){method1();syncmeth
早就戒了
·
2020-09-13 05:14
JAVA
JAVA并发
探索
JAVA并发
- 悲观锁和乐观锁
作者:acupt,专注Java,架构师社区合伙人!什么是悲观锁,什么是乐观锁,它们是如何实现的?定义悲观锁:对世界充满不信任,认为一定会发生冲突,因此在使用资源前先将其锁住,具有强烈的独占和排他特性。乐观锁:相信世界是和谐的,认为接下来的操作不会和别人发生冲突,因此不会上锁,直接进行计算,但在更新时还是会判断下这期间是否有人更新过(该有的谨慎还是不能少),再决定是重新计算还是更新。悲观锁悲观锁认为
架构师小秘圈
·
2020-09-13 05:31
Java并发
编程思维导图-究极版
思维导图见文末~Java内存模型(JMM)线程通信机制内存共享Java采用消息传递内存模型重排序重排序在多线程环境下可能会导致数据不安全在单线程环境下不能改变程序运行的结果存在数据依赖关系的不允许重排序为了程序的性能,处理器、编译器都会对程序进行重排序处理条件问题顺序一致性一个线程中的所有操作必须按照程序的顺序来执行所有线程都只能看到一个单一的操作执行顺序,不管程序是否同步每个操作都必须原子执行且
Lvshen的技术小屋
·
2020-09-13 04:30
Java
线程池
多线程
队列
分布式
面试
数据结构
链表
总结Java开发面试常问的问题,持续更新中~
GitHub地址:github.com/zaiyunduan1…,如果对你有帮助欢迎Star数据库mysqlredisjavajava虚拟机
java并发
java容器java基础计算机网络数据结构与算法操作系统
weixin_33967071
·
2020-09-13 04:09
笑谈
java并发
编程二之AtomicInteger介绍
AtomicInteger的使用,重点是原子性,解决并发编程下的不一致问题,因为咱们都是程序猿,喜欢看代码,所以我就直接上代码说明问题了,还望各位小猿们支持:实现一个计数器功能,下面用三种方式实现:第一种,用一般的方式实现:publicclassIntegerIncrement{privatestaticIntegercount=0;publicstaticIntegerincrement(){r
一个瘦子的梦想
·
2020-09-13 04:06
并发编程
上一页
60
61
62
63
64
65
66
67
下一页
按字母分类:
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
其他