- 浏览: 43866 次
- 性别:
- 来自: 北京
最新评论
-
xdx2599:
#!/usr/bin/python# -*- coding: ...
python 实现简单的数字字符串四则运算 -
xdx2599:
#!/usr/bin/python# -*- coding: ...
python 实现简单的数字字符串四则运算 -
xdx2599:
#!/usr/bin/python# -*- coding: ...
python文件操作 -
xdx2599:
#!/usr/bin/python# -*- coding: ...
python文件操作
文章列表
文章链接来自于
http://blog.sina.com.cn/s/blog_54b5ea250100g2r8.html
SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。TCP协议建立连接的时候需要双方相互确认信息,来防止连接被伪造和精确 ...
备忘hbase
- 博客分类:
- hbase1.2 pom.xml
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</ ...
版权声明
转自
http://blog.csdn.net/lxb_champagne/article/details/18352945
JMAP 输出
jmap -histo 24527 | head -30
num #instances #bytes class name
----------------------------------------------
1: 31939 98883072 [C
2: 8594 9461992 [B
3: ...
tomcat 长连接配置
- 博客分类:
- 备忘录
在Connector里面加上 keepAliveTimeout="150000" maxKeepAliveRequests="-1"
其中:
keepAliveTimeout:表示在下次请求过来之前,tomcat保持该连接多久。这就是说假如客户端不断有请求过来,且为超过过期时间,则该连接将一直保持。
maxKeepAliveRequests:表示该连接最大支持的请求数。超过该请求数的连接也将被关闭(此时就会返回一个Connection: close头给客户端)。
concurrent包下的容器之Queue
- 博客分类:
- java
并发Queue
在并发队列上JDK提供了两套实现:
一个是以ConcurrentLinkedQueue为代表的高性能队列,
一个是以BlockingQueue接口为代表的阻塞队列
这两种都继承自 Queue
ConcurrentLinkedQueue:是一个适用于高并发场景下的队列,通过无锁的方式,实现高并发状态下的高性能,通常ConcurrentLinkedQueue性能要好于BlockingQueue,它是一个基于链接节点的无界线程安全队列,该队列
的元素遵循先进先出的原则,头是最先加入的,尾是最近加入的,该队列不允许null元素存在
ConcurrentMap
ConcurrentMap包下有两个重要的实现
ConcurrentHashMap
ConcurrentSkipListMap(支持并发排序功能,弥补ConcurrentHashMap)
ConcurrentHashMap 内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的HashMap,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行,把一个整体分成了16个段(Segment) ,也就是最高支持16个线程的并发修改操作
这也是在多线程场景时减小锁的粒度从而降低锁竞争的一种方案,并且代码中大多共享变量使用 ...
用 wait/notify模拟实现一个 BlockingQueue
public class MyQueue {
//承装元素的集合
private final LinkedList<Object> list = new LinkedList<Object>();
//计算器
private AtomicInteger count = new AtomicInteger(0);
private final int minSize = 0;
private final int maxSize;
public ...
使用wait/notify 方法实现线程之间的通信 这两个方法都是object类的方法
换句话说 java为所有的对象都提供了这两个方法
1 wait 和notify 必须配合synchronized 关键字来使用
2 wait 方法释放锁,notify方法不释放锁
public class Test2 {
private volatile static List list = new ArrayList();
@SuppressWarnings("unchecked")
public void add(){
list.add(&q ...
volatile关键字
- 博客分类:
- java
volatile关键字 作用 是使变量在多个线程间可见
在java 中 ,每一个线程都会有一个工作区内存,其中存放着线程共享的主内存中的变量值的一个拷贝,当线程执行时 在自己的工作区中操作这些变量,为了存取一个共享的变量 ...
synchronized 关键字及使用
- 博客分类:
- java
synchronized 锁重入
关键字synchronized锁重入的功能,也就是在使用synchronized 时,当一个线程得到了一个对象的锁后,再次请求此对象时是可以再次得到该对象的锁 示例代码如下
public class SyncDubbo1 {
public synchronized void method1(){
System.out.println("method1");
method2();
}
public synchronized void method2(){
System.out.println(& ...
典型场景:秒杀
一 提前准备工作
1.系统独立部署
2.做好系统性能容量规划 (两个方面 一是对系统性能有个计算,另外还需要对并发量有个预估)
容灾 和过载保护措施
3 系统的拆分 比如:按功能模块,按实时/ ...
并发较高的混合读写(库存的查询和修改)解决方案
- 博客分类:
- java
当单一应用和单一缓存能满足的时候
1
.单一操作的应用+单个缓存+同步写入数据库
2 读操作比较多 并发操作并不是太多的情况下
.单一操作的应用+多个缓存+同步写入数据库
通常此种情况下会把 sku 进行水平拆分 放到不同的 cache 中
如下图
3 并发操作并不是太多的情况下
.多个单一操作的应用+多个缓存+同步/异步 写入数据库
这种情况下需要在前端 对 sku 编号 进行划分 比如 对 把编号 前200w的sku的操作 映射到后面的 s1 中
其目的最终也是为了保证 对相应的库存单一线程操作
当数据库压力过大时 可以考虑异步写库
4 上 ...
client端
#!/usr/bin/python
# -*- coding: utf-8 -*-
from twisted.internet import reactor, protocol
class EchoClient(protocol.Protocol):
#建立连接后调用的事件
def connectionMade(self):
#把数据输出到服务器端
self.transport.write(bytes("hello dongxu!","utf8"))
...
报错如下:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
解决方法:
在mysql的url中加入autoReconnect=true,这样就可以解决。
python pickle
- 博客分类:
- python
http://www.cnblogs.com/alex3714/articles/5161349.html