51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#UNIX环境高级编程第三版
深入理解java:2.3.2. 并发编程concurrent包 之重入锁/读写锁/条件锁
重入锁Java中的重入锁(即ReentrantLock) 与JVM内置锁(即synchronized)一样,是一种排它锁。ReentrantLock提供了多样化的同步,比如有时间限制的同步(定时锁),可以被Interrupt的同步,即中断锁(synchronized的同步是不能Interrupt的...
代码星球
·
2021-01-30
深入
理解
java
2.3.2.
并发
深入理解java:2.3.1. 并发编程concurrent包 之Atomic原子操作(循环CAS)
java中,可能有一些场景,操作非常简单,但是容易存在并发问题,比如i++,此时,如果依赖锁机制,可能带来性能损耗等问题,于是,如何更加简单的实现原子性操作,就成为java中需要面对的一个问题。 在backport-util-concurrent没有被引入java1.5并成为JUC之前,这些原子类和原子操作方...
代码星球
·
2021-01-30
深入
理解
java
2.3.1.
并发
深入理解java:2.3. 并发编程 java.util.concurrent包
JUCjava.util.concurrent包,这个包是从JDK1.5开始引入的,在此之前,这个包独立存在着,它是由DougLea开发的,名字叫backport-util-concurrent,在1.5开始引入java,命名路径为java.util.concurrent,其中的基本实现方式,也有所改变。(来源于一位大...
代码星球
·
2021-01-30
深入
理解
java
2.3.
并发
计算机专业课系列之一:漫谈计算机组成原理和编程语言
一,冯诺伊曼结构的计算机1,计算机的五大组成部分 运算器+控制器(CPU),存储器(内存+硬盘),输出设备(显示器),输入设备(鼠标和键盘)。2,数据和指令以二进制形式,不加区别的存放在存储器中。数据和指令存储在一块,存储在一个存储器中是风诺伊曼结构的重要标志3,冯诺伊曼结构的计算机的工作原理内存是一个线性结...
代码星球
·
2021-01-30
计算机
专业课
系列
之一
漫谈
Linux系统编程之事件驱动
通常,我们写服务器处理模型的程序时,有以下几种模型:(1)每收到一个请求,创建一个新的进程,来处理该请求;(2)每收到一个请求,创建一个新的线程,来处理该请求;(3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求分析:第(1)中方法,由于创建新的进程的开销比较大,所以,会导致服务器性能比较差,...
代码星球
·
2021-01-30
Linux
系统
编程
事件
驱动
《Redis设计与实现》之第三章:链表
当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。比如:integers列表键的底层实现就是一个链表,链表中的每个节点都保存了一个整数值。1.链表节点:typedefstructlistNode{ //前置节点&...
代码星球
·
2021-01-30
Redis设计与实现
第三章
链表
并发编程与高并发学习笔记六
J.U.C一,AbstractQueuedSynchronizer-AQS1.设计使用Node实现FIFO队列,可以用于构建锁或者其他同步装置的基础框架利用一个int类型表示状态在AQS类中有一个叫waitStatus的成员变量,基于AQS有一个同步组件叫ReentrantLock,在这个组件中status表示获取锁的...
代码星球
·
2021-01-30
并发
编程
高并发
学习
笔记
并发编程与高并发学习笔记五
线程池一,newThread弊端每次newThread新建对象,性能差线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多的系统资源导致死机或OMM缺少更多功能,如更多执行,定期执行,线程中断二,线程池的好处重用存在的线程,减少对象的创建和消亡的开销,新能好可以有效的控制最大并发线程数,提高系统资源利用率,...
代码星球
·
2021-01-30
并发
编程
高并发
学习
笔记
并发编程与高并发学习笔记四
线程封闭一,什么是线程封闭把对象封装到一个线程里,只有一个线程能看到。这样就算这个对象不是线程安全的,也不会出现线程安全问题一,实现线程封闭的方法Ad-hoc线程封闭:程序控制实现,最糟糕,忽略堆栈封闭:局部变量,无并发问题多个线程访问一个方法时,方法中的局部变量会被拷贝一份到线程的栈中,所以局部变量是不会被多个线程访...
代码星球
·
2021-01-30
并发
编程
高并发
学习
笔记
并发编程与高并发学习笔记三
不可变对象一,不可变对象的需要满足的条件1.对象创建以后其状态就不能修改2.对象的所有域都是final类型3.对象是正确创建的(对象创建期间,this引用没有逸出)二,可以采用的方式:1.将类设置为final,该类不能被继承2.将所有的成员声明为私有的,这样就不运行直接访问这些成员3.对变量不提供setter方法,将所...
代码星球
·
2021-01-30
并发
编程
高并发
学习
笔记
并发编程与高并发学习笔记二
发布安全对象一,发布对象1.发布对象:是一个对象能够被当前范围之外的代码所使用2.对象逸出:一种错误的发布。当一个对象还没有构造完成时,就使他被其他线程所见//发布对象,这是一个不安全的对象publicclassUnsafePublish{privateString[]states={"a","b","c"};publ...
代码星球
·
2021-01-30
并发
编程
高并发
学习
笔记
并发编程与高并发学习笔记一
一,线程安全性1.定义:当多个线程访问某个类时,不管运行时环境采用任何调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么称这个类是线程安全的2.线程安全性体现在三个方面:原子性:提供了互斥访问,同一时刻只能有一个线程来对他操作可见性:一个线程对主内存的修改可...
代码星球
·
2021-01-30
并发
编程
高并发
学习
笔记
Linux应用程序设计之网络基础编程
1、TCP/IP协议概述1.1、OSI参考模型及TCP/IP参考模型OSI协议参考模型是基于国际标准化组织(ISO)的建议发展起来的,从上到下工分为7层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。与此相区别的TCP/IP协议模型一开始就遵循简单明确的设计思路,它将OSI的7层参考模型简化为4层,从而得...
代码星球
·
2021-01-30
Linux
应用
程序设计
网络基础
编程
Linux运维一:生产环境CentOS6.6系统的安装
CentOS6.6x86_64官方正式版系统(64位)下载地址系统之家:http://www.xitongzhijia.net/linux/201412/33603.html百度网盘:http://pan.baidu.com/s/1i5HSsnz本博客大部分文章如无特别说明都是基于该系统之上的! Linux系...
代码星球
·
2021-01-30
Linux
运维
生产
环境
CentOS6.6
Python高手之路【十三】socket网络编程
什么是客户/服务器架构?什么是客户/服务器架构?不同的人有不同的答案。这要看你问的是什么人,以及指的是软件系统还是硬件系统了。但是,有一点是共通的:服务器是一个软件或硬件,用于提供客户需要的“服务”。服务器存在的唯一目的就是等待客户的请求,给这些客户服务,然后再等待其它的请求。另一方面,客户连上一个(预先已知的)服务器...
代码星球
·
2021-01-30
Python
高手
之路
十三
socket
首页
上一页
...
43
44
45
46
47
...
下一页
尾页
按字母分类:
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
其他