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并发
编程实战
》第七章 取消与关闭
7.1任务取消程序清单7-1使用volatile类型的域来保存取消状态publicclassPrimeGeneratorimplementsRunnable{privatefinalListprimes=newArrayListget(){returnnewArrayListaSecondOfPrimes()throwsInterruptedException{PrimeGeneratorgene
小超_8b2f
·
2020-06-21 14:40
《java并发
编程实战
》 第七章 任务、线程的取消与关闭
《java并发
编程实战
笔记》第七章任务、线程的取消与关闭任务如何取消通过判断volatile类型的状态量----不一定可靠通过中断-----实现取消最合理方法可中断的阻塞函数如何响应中断通过Future
乌鸦大大
·
2020-06-21 12:55
java并发编程实战
《java并发
编程实战
》 第八章 线程池的使用
《java并发
编程实战
笔记》第八章线程池的使用与执行策略之间存在隐形耦合的任务(不可轻易更改线程池)设置线程池的大小配置ThreadPoolExecutor线程的创建配置任务队列的管理饱和策略(任务有界队列
乌鸦大大
·
2020-06-21 12:21
java并发编程实战
Exchanger类:并发任务间的数据交换
本文参考至《Java7并发
编程实战
手册》Exchanger类允许在两个线程之间定义同步点,当两个线程都到达同步点时,它们交换数据。
higher2017
·
2020-06-21 12:10
Java并发
编程实战
————Lock
可替代synchronized的手动锁ReentrantLock是Lock接口的一个实现,可以用于替代synchronized。使用ReentrantLock可以完成类似synchronized(this)的功能,需要注意的是,就算线程已经执行完毕,Lock也不会自动释放锁,必须要手动释放锁!!!与synchronized不同的是:使用synchronized锁定的话如果遇到异常,JVM会自动释放
圣斗士Morty
·
2020-06-21 09:28
Java多线程与并发
从0学习java并发
编程实战
-读书笔记-java内存模型(14)
什么是java内存模型假设一个线程为变量aVariable赋值:aVariable=3;内存模型需要解决的问题:在什么条件下,读取aVariable的线程将看到这个值为3?如果缺少同步,那么将会有许多因素使得线程无法立即甚至永远,看到另一个线程的操作结果。在编译器中生成的指令顺序,可以与源代码中的顺序不同,编译器还会把变量保存在寄存器而不是内存中。处理器可以采用乱序或并行等方式来执行指令。缓存可能
伟大的卷发
·
2020-06-21 02:58
java
内存
多线程
并发
并发编程
从0学习java并发
编程实战
-读书笔记-原子性与非阻塞同步算法(13)
近年来,在并发算法领域的大多数研究都侧重于非阻塞算法,这种算法用底层的原子机器指令(例如比较和交换指令)代替锁来确保数据在并发访问中的一致性。非阻塞算法被广泛的用于在操作系统和JVM中实现线程/进程调度机制,垃圾回收机制以及锁和其他并发数据结构。与基于锁的方案相比,非阻塞算法在设计和实现上都要复杂的多,但它们在可伸缩性和活跃性上有着巨大的优势。由于非阻塞算法可以使多个线程在竞争相同的数据时不会发生
伟大的卷发
·
2020-06-21 02:26
java
并发编程
并发
多线程
同步
从0学习java并发
编程实战
-读书笔记-构建自定义的同步工具(12)
类库包含了许多存在状态依赖的类,例如FutureTask、Semaphore和BlockingQueue等。在这些类的一些操作中有着基于状态的前提条件,例如,不能从一个空的队列中删除元素,或者获取一个尚未结束的任务的计算结果,在这些操作可以执行之前,必须等到队列进入“非空状态”,或者任务进入已完成状态。创建状态依赖类的最简单方式就是在类库中现有的状态依赖类上进行构造,例如countDownLatc
伟大的卷发
·
2020-06-21 02:53
java
并发编程
多线程
后端开发
锁
从0学习java并发
编程实战
-读书笔记-显式锁(11)
Java5.0增加了一种新的机制:ReentrantLock,ReentrantLock并不是一种替代内置加锁的方法,而是当内置加锁机制不适用时,作为一种可选择的高级功能。Lock和ReentrantLock与内置的加锁机制不同,Lcok提供了一种无条件的、可轮训的、定时的以及可中断的锁获取操作,所有的加锁和解锁的方法都是显式的。在Lock的实现中必须提供与内部锁相同的内存可见性语义,但在加锁语义
伟大的卷发
·
2020-06-21 02:52
java
多线程
并发编程
锁
synchronized
从0学习java并发
编程实战
-读书笔记-性能与可伸缩性(10)
线程的最主要目的是提高程序的运行性能。虽然我们希望获得更好的性能,但是始终需要把安全性放在第一位。首先需要保证程序能正确运行,然后仅当程序的性能需求和测试结果要求程序执行的更快时,才应该设法提高它的运行速度。在设计并发程序时,最重要的通常不是把性能提至极限。对性能的思考提升性能意味着用更少的资源做更多的事。当操作性能由于某种特定的资源而受到限制时,我们通常将该操作称为资源密集型的操作,例如CPU密
伟大的卷发
·
2020-06-21 02:52
java
多线程
并发编程
synchronized
后端开发
从0学习java并发
编程实战
-读书笔记-活跃性问题(9)
在安全性与活跃性之间通常存在着某些制衡。我们使用加锁机制来确保线程安全,单如果过度的使用加锁,则可能导致锁顺序死锁(Lock-OrderingDeadlock)。我们使用线程池和信号量来限制对资源的使用,但这些被限制的行为可能会导致资源死锁(ResourceDeadlock)。死锁在数据库系统的设计中考虑了检测死锁以及从死锁中恢复。当数据库系统检测到一组事务发生了死锁(通过在表示等待关系的有向图中
伟大的卷发
·
2020-06-21 02:52
死锁
synchronized
java
多线程
并发编程
从0学习java并发
编程实战
-读书笔记-取消与关闭(7)
要使任务和线程能安全、快速、可靠的停下来,并不是一件容易的事。java没有提供任何机制来安全地终止线程(Thread.stop和suspend等方法提供了这样的功能,但是存在严重缺陷,应该避免使用)。但是java提供了中断(Interruption),这是一种协作机制,能够使一个线程终止另一个线程的当前工作。我们很少希望某个任务、线程或服务立即停止,因为这种立即停止会使共享的数据结构处于不一致的状
伟大的卷发
·
2020-06-21 02:44
java
synchronized
并发
并发编程
同步
从0学习java并发
编程实战
-读书笔记-第一部分总结(5)
总结的内容来自原文的90-91页可变状态是至关重要的。所有的并发问题都可以归结为如何协调对并发状态的访问。可变状态越少,越容易确保线程安全性。尽量将域声明为final类型,除非需要它们是可变的。不可变对象一定是线程安全的。不可变对象能极大的降低并发编程的复杂性。它们更为简单而且安全,可以任意共享而无需使用加锁或保护性复制等机制。封装有助于管理复杂性。在编写线程安全的程序时,虽然可以将所有数据都保存
伟大的卷发
·
2020-06-21 02:13
java
并发编程
并发
synchronized
多线程
从0学习java并发
编程实战
-读书笔记-结构化并发应用程序(6)
在线程中执行任务在理想情况下,任务之间都是相互独立的:任务并不依赖于其他任务的状态,结果或边界效应。独立性有助于实现并发。大多数服务器的应用程序都提供了一个自然的任务边界:以独立的客户请求为边界。串行地执行任务最简单的方式就是在单个线程中串行的执行各项任务。但是现实中的web服务器的情况却并非如此。在web请求中包含了一组不同的运算和I/O操作。服务器必须处理套接字I/O以读取请求和写回响应,这些
伟大的卷发
·
2020-06-21 02:13
java
并发
并发编程
synchronized
多线程
从0学习java并发
编程实战
-读书笔记-基础构建模块(4)
同步容器类同步容器类包括Vector和Hashtable,这两个是早期JDK的一部分。此外还包括在JDK1.2中添加Collections.synchronizedXxx等工厂方法,这些类实现线程安全的方式是:将它们的状态封装起来,并对公有方法进行同步,使得每次只有一个线程能访问容器的状态。同步容器类的问题同步容器类都是线程安全的,但是某些复合操作需要额外的客户端加锁来保护,常见的复合操作:迭代:
伟大的卷发
·
2020-06-21 02:12
java
并发
并发编程
synchronized
多线程
从0学习java并发
编程实战
-读书笔记-对象的组合(3)
设计线程安全的类在设计线程安全类的过程中,需要包涵以下三个基本要素:找出构成对象状态的所有变量找出约束状态变量的不变性条件建立对象状态的并发访问管理策略同步策略(SynchronizationPolicy)定义了如何在不违背对象不变条件或后验条件的情况下对其状态的访问操作进行协同。收集同步需求要确保类的线程安全性,就需要保证它的不变性条件不会在并发访问的情况下被破坏。对象和变量都有一个状态空间,即
伟大的卷发
·
2020-06-21 02:40
synchronized
并发
java
锁
同步
从0学习java并发
编程实战
-读书笔记-对象的共享(2)
要编写正确的并发程序,关键在于:在访问共享的可变状态时,需要进行正确的管理。可见性publicclassNoVisibility{privatestaticbooleanready;privatestaticintnumber;privatestaticclassReaderThreadextendsThread{publicvoidrun(){while(!ready){Thread.yield
伟大的卷发
·
2020-06-21 02:39
java
并发
锁
synchronized
同步
Android高级开发必读书单
基本语法(如继承、异常、引用、泛型等)Java核心技术卷I(适合入门)进阶EffectiveJava中文版(如何写好的Java代码)Java解惑(介绍烂Java代码是什么样的)(b)多线程、并发Java并发
编程实战
NullPoints
·
2020-06-21 00:59
【架构设计】
Java并发编程(八):并发安全
一、什么是线程安全性在《Java并发
编程实战
》中,定义如下:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在调用代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为
逆风fei扬
·
2020-06-20 23:20
java网络
编程实战
- 基于BIO的伪异步、高并发、全双工、长连接持续消息IO的网络编程
前言TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP
cemanduan
·
2020-06-20 17:20
vcvc
废墟现场
得瑟得瑟
java网络
编程实战
- 运用TCP通讯思想,手写设计实现可定制、复用和扩展的RPC服务调用框架
前言RPC(RemoteProcedureCall)远程过程调用是一种思想,也是目前微服务调用领域的主流开发模式。就底层的网络协议来说,TCP、UDP、HTTP等协议均可以设计实现我们需要的RPC。其中基于TCP协议实现的RPC框架在可靠性、性能和可伸缩性等方面都更胜一筹,其中Dubbo、GRPC为代表(虽然其基于Netty通信框架,但其底层均为TCP协议)。RPC框架交互流程根据以上流程我们可以
wavebeed
·
2020-06-19 17:02
RPC
远程过程调用
微服务
java网络
编程实战
- 基于BIO的伪异步、高并发、全双工、长连接持续消息IO的网络编程
前言TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP
wavebeed
·
2020-06-17 17:22
BIO
全双工
持续IO
Java后端求职基础学习目录
Java后端求职基础学习目录语言基础《Java核心技术》《Java编程思想》和《EffectiveJava》《深入理解Java虚拟机》《Java并发
编程实战
》数据结构和算法《数据结构和算法推荐》计算机网络
退堂鼓大师
·
2020-06-13 13:40
java
47.霓虹灯按钮动画效果的悬停
效果(源码网盘地址在最后)视频演示「前端
编程实战
47」HTML+CSS3实现霓虹灯按钮动画效果的悬停视频地址一:https://www.bilibili.com/video/BV15k4y1z7gW/视频地址二
前端小智@大迁世界
·
2020-06-12 17:46
CSS创意特效
Python零基础编程——09密码学实战篇-古典加密算法加密解密破解
内容1-凯撒加密法
编程实战
2-
FreoStudio
·
2020-06-12 09:01
Python
密码学
python
加密解密
安全
Java并发
编程实战
总结 (一)
前提首先该场景是一个酒店开房的业务。为了朋友们阅读简单,我把业务都简化了。业务:开房后会添加一条账单,添加一条房间排期记录,房间排期主要是为了房间使用的时间不冲突。如:账单A,使用房间1,使用时间段为2020-06-0112:00-2020-06-0212:00,那么还需要使用房间1开房的时间段则不能与账单A的时间段冲突。业务类为了简单起见,我把几个实体类都简化了。账单类publicclassBi
Johnson木木
·
2020-06-06 09:00
响应式
编程实战
——RxJS 重构组合事件流
今天我们来看看如何改变事件发生的频率。让我们添加两个按钮,分别代表了二分之一秒产生一个事件的事件流和四分之一秒产生一个事件的事件流。根据昨天的文章,我们可以想到用merge操作符把它们和开始按钮合并起来。consttime$=merge(startBtnClick$,halfBtnClick$,quarterBtnClick$);constsubscription=time$.pipe(switc
du1dume
·
2020-06-03 00:02
单例模式与DCL双重校验锁
今天正好学习完了《Java并发
编程实战
》,该书的最后一章讲得就是JMM(Java内存模型),其中就提到了以DCL方式实现单例模式的优缺点。单例模式单例模式的概念就不在这里赘述了。
罪与罚
·
2020-06-01 12:23
java
设计模式
单例模式
《金哥百变Python零基础教程7》~实战I
本章知识点:>
编程实战
复习一下p0总结在线看p1总结在线看p4总结在线看p5总结在线看p6总结在线看北京地铁(没错,我们想尝试解决真实的地铁问路问题)孰能生巧前面3章我们学习了函数列表字典相关知识。
金哥数据分析
·
2020-05-30 07:20
从0学习java并发
编程实战
-读书笔记-线程池的使用(8)
#在任务与执行策略之间的隐性耦合Executror框架可以将任务的提交与任务的执行解耦开。但是虽然Executor框架为制定和修改执行策略提供了很大的灵活性,但并非所有的任务都能适用所有的执行策略。有些类型的任务需要明确地制定执行策略,其中包括:依赖性任务:大多数行为正确的任务都是独立的:它们不依赖于其他任务的执行时序、执行结果或其他效果。当在线程池中执行独立任务时,可以任意修改线程池大小和配置,
伟大的卷发
·
2020-05-27 22:56
并发
线程池
java
synchronized
多线程
Java并发
编程实战
05等待-通知机制和活跃性问题
Java并发编程系列Java并发
编程实战
01并发编程的Bug源头Java并发
编程实战
02Java如何解决可见性和有序性问题Java并发
编程实战
03互斥锁解决原子性问题Java并发
编程实战
04死锁了怎么办前提在
Johnson木木
·
2020-05-20 09:00
《ASP.NET MVC 5
编程实战
》 - 学习笔记
**《ASP.NETMVC5
编程实战
》==============================[作者](美)DinoEsposito[译者](中)潘丽臣[出版]清华大学出版社[版次]2015年03月第
GATTACA2011
·
2020-05-17 17:01
.NET
C#
ASP.NET
[.Net]
-
(MVC)
《ASP.NET MVC 5
编程实战
》 - 学习笔记
《ASP.NETMVC5
编程实战
》==============================[作者](美)DinoEsposito[译者](中)潘丽臣[出版]清华大学出版社[版次]2015年03月第1
GATTACA2011
·
2020-05-17 17:13
[.Net]
-
(ASP.NET
MVC)
《ASP.NET MVC 5
编程实战
》 - 学习笔记
《ASP.NETMVC5
编程实战
》==============================[作者](美)DinoEsposito[译者](中)潘丽臣[出版]清华大学出版社[版次]2015年03月第1
GATTACA2011
·
2020-05-17 17:00
Java实现简单工厂模式—GoF(一)
《大话设计模式》或《研磨设计模式》《重构改善既有代码的设计》《effectivejava》《深入理解Java虚拟机》《Java并发
编程实战
》《深入理解计算机系统》除此之外,闲暇之余多阅读一下JDK源码,
maxzhao_
·
2020-05-14 21:00
19本高并发编程书籍推荐
Java并发
编程实战
(java并发的圣经)多处理器编程的艺术(并发编程的各种算法,java实现,有点难度)并发的艺术(多核处理器的共享内存模型中的各种算法)Java虚拟机并发编程(jvm平台上各种语言的并发比较
liuhuiteng
·
2020-05-13 08:42
开发书籍
开发书籍
Java并发
编程实战
04死锁了怎么办?
Java并发编程文章系列Java并发
编程实战
01并发编程的Bug源头Java并发
编程实战
02Java如何解决可见性和有序性问题Java并发
编程实战
03互斥锁解决原子性问题前提在第三篇文章最后的例子当中,
Johnson木木
·
2020-05-12 08:00
Java并发
编程实战
03互斥锁 解决原子性问题
文章系列Java并发
编程实战
01并发编程的Bug源头Java并发
编程实战
02Java如何解决可见性和有序性问题摘要在上一篇文章02Java如何解决可见性和有序性问题当中,我们解决了可见性和有序性的问题,
Johnson木木
·
2020-05-07 08:00
Java并发
编程实战
02Java如何解决可见性和有序性问题
摘要在上一篇文章Java并发
编程实战
01并发Bug的源头当中,讲到了CPU缓存导致可见性、线程切换导致了原子性、编译优化导致了有序性问题。
Johnson木木
·
2020-04-20 10:00
JDK8并发
编程实战
源码探究系列(一)并发包概览
JDK8并发
编程实战
源码探究系列涉及java.util.concurrent包几乎所有类或者接口的原理、使用实战、源码讲解。
东陆之滇
·
2020-04-15 21:57
【Java并发专题】
Java并发
编程实战
01并发编程的Bug源头
本文为学习极客时间:Java并发
编程实战
01的总结,文章取图也是来自于该文章并发Bug源头在计算机系统中,程序的执行速度为:CPU>内存>I/O设备,为了平衡这三者的速度差异,计算机体系机构、操作系统、
Johnson木木
·
2020-04-14 13:00
一男子给对象转账5000元,居然又退还了!
其中在《Java并发
编程实战
》一书中对线程安全的定义如下:当多个线程访问某个类时,不管运行是环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不
武培轩
·
2020-04-14 12:09
并发
原子性
java
PHP
编程实战
14-15
');$animals->{0}='HelloWorld';$animals->asXML('animals.xml');//确保新建的输出文件没有错误var_dump(simplexml_load_file('animals.xml'));?>
海边拾贝
·
2020-04-14 12:53
PHP
编程实战
15-2
"LewisCarroll","title"=>"Alice'sAdventuresinWonderland","year"=>1865),array("author"=>"YannMartel","title"=>"LifeofPi","year"=>2001),array("author"=>"JunotDiaz","title"=>"TheBriedWondoursLifeofOscarWa
海边拾贝
·
2020-04-14 12:25
一男子给对象转账5000元,居然又退还了!
其中在《Java并发
编程实战
》一书中对线程安全的定义如下:当多个线程访问某个类时,不管运行是环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不
武培轩
·
2020-04-14 09:00
PHP
编程实战
14-13
snoopybrownbeagelcrossteddybrowntabbyjadeblacklabcrossTHE_XML;$xml_object=simplexml_load_string($xml);$result=$xml_object->xpath("dog/name[contains(.,'jade')]");print(String)$result[0]->attributes()->
海边拾贝
·
2020-04-14 08:41
团队交流记录 - 2020-04
算法练习从「想通了码不出来」进阶到「想通就能码出来」,我们需要足够熟悉编程语言,需要足够多的
编程实战
经验。团队制定一个活动帮大家进阶:每周二、周四集体刷leetcode每日一题,周五总结分享。
Apolis
·
2020-04-12 00:00
团队交流记录 - 2020-04
算法练习从「想通了码不出来」进阶到「想通就能码出来」,我们需要足够熟悉编程语言,需要足够多的
编程实战
经验。团队制定一个活动帮大家进阶:每周二、周四集体刷leetcode每日一题,周五总结分享。
apolis
·
2020-04-12 00:00
基于BIO实现简单的聊天室
[TOC]前言环境:openjdk8参考书籍:java多线程
编程实战
指南(核心篇)黄文海注意:这个主要是试用下BIO通讯,重点是使用BIO,不是实现聊天室,所以写的很糙,确实很丑......分析单线程版特点
码个锤子
·
2020-04-11 14:31
12:Java并发
编程实战
1:生产者和消费者模式下的并发案例生产者和消费者之间通过阻塞队列来进行通信,阻塞队列相当于一个缓存区,平衡了生产者和消费者之间的处理能力。(1)多生产者、多消费者场景(2)线程池与生产消费者模式A:java中线程池其实也是一种生产者和消费者模式的实现方式。那它为啥比使用一个阻塞队列来实现实现生产者和消费者模式高明呢?B:如何使用线程池来实现多生产者和消费者模式呢?(可以考虑一个线程池1主要处理Io
漫步_2310
·
2020-04-11 13:24
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
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
其他