本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
Java并发框架(Concurrency)
原文:http://www.groovyq.net/content/java并发框架回顾
Java并发框架java.util.concurrent是JDK5中引入到标准库中的(采用的是Doug Lea的并发库)。该包下的类可以分为这么块:
Executors
1)接口:
Executor(例子涉及):用来执行提交的Runnable任务的对象。是一个简单的标准化接口,用来定义包括线程池、异步IO、 ...
并发Socket消息发送
线程安全扫盲贴四中,改了异常消息发送的方法,把调用客户端发送消息改成了直接写消息到接收消息队列中,这样虽然接收消息线程池的线程飘红,但总能堵塞堵塞着执行完。为什么客户端并发socket请求会一直卡住了呢?我也不知道。
客户端发送socket的代码如下
/**
* 发送消息
* @param msg消息
* @param encoding 消息的编码格式
* @thr ...
使用visual vm 分析线程(下)
接着上一篇《线程安全扫盲贴三》,开始第二次测试。
第二次测试
这次并发1000个客户端消息,每次并发20条后休眠1秒。客户端消息发给我的Server后,我的Server再转发给消息指定的服务器。为了产生异常消息,我将指定的目标服务器关闭了,于是每次消息第一次发送完成后,都成为了一个异常消息,每个异常消息将会自动间隔30s;1m;2m发送3次,发送失败后停止发送。
这样虽然是并发了1000个 ...
使用visual vm 分析线程(上)
网上很多visual vm的指南手册之类,visual vm最新的下载好后,直接运行即可。
如果无法运行,在右键选择要执行的类,选择Run As-->Open Run Dialog,在新窗口中选择Arguments标签。
vm参数上增加:-XX:+PerfBypassFileSystemCheck
【代码背景介绍——4个线程】
客户端向我的Server中发送消息,我的 ...
线程安全扫盲贴二——锁详解
上篇提了一点: 由于内部锁是基于线程而非调用的,当一个线程执行increase方法时,已经拿到了counter对象引用的锁,那么其他线程执行同一个对象的increase或increase2会堵塞等待counter对象锁。
这里涉及到线程的重进入机制,如果线程A进入了increase,那么它已经拿到了counter的对象锁,那么该线程也可以进入increase2,因为这里的increase ...
ConcurrentHashMap 解读(一)
一、核心思想
1、锁分离技术:
ConcurrentHashMap首先将数据分成一段一段(segment)的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。
2、 final 关键字保证HashEntery 对象的不变性,来降低执行读操作的线程在遍历链表期间对加锁的需求:
ConcurrentHashMap完全允许多个读操作并发 ...
线程安全扫盲贴一——什么是线程安全
线程的系统都写完了,遇到很多问题,刚开始写到处都在synchronized,跌倒又爬起来,现在回过头来看看JAVA并发实践,开始整理下。
《JAVA并发编程实践》说线程安全就是,在单线程执行时候,实例状态是正确的,在多线程执行的时候,状态仍要正确:
a class is thread-safe when it continues to behave correctly when acces ...
聊聊并发(四)深入分析ConcurrentHashMap
本文是作者原创,发表于InfoQ:http://www.infoq.com/cn/articles/ConcurrentHashMap
更多并发编程文章访问:http://ifeve.com/?p=269
术语定义
术语
[并发编程]聊聊并发
聊聊并发系列文章是我在InfoQ发表的并发编程连载文章。
聊聊并发(一)深入分析Volatile的实现原理
聊聊并发(二)Java SE1.6中的Synchronized
聊聊并发(三)Java线程池的分析和使用
shell的并发
#!/bin/bash
date;echo "=========begin"
for ((i=0;i<5;i++));do
{
sleep 3;echo "done"
}&
done
wait
date;echo "=========end"
memcached缓存失效时的高并发访问问题解决
memcached一般用于在访问一些性能相对低下的数据接口时(如数据库),为了保证这些数据接口的稳定性,加上memcached以减少访问次数,保证这些数据接口的健壮性。一般memcached的数据都是定时失效的,当数据失效时一般会再次去访问取数据接口,然后将其更新至memcached中。这时就会有一个问题,当某个数据失效时,恰好同时有大量的客户端访问该数据,这时这些客户端都会发现该数据失效,然 ...
MyISAM并发调优
MyISAM在某些条件下允许并发插入下读取,并且它让你可以“高度”某些操作,以尽可能少地阻止工作。
MyISAM如何删除和插入行??
删除操作不会重新安排整个表,它们只是把行标记为已经删除,并且在表中留下了一些“洞”。MyISAM在可能的情况下会优先使用这些“洞”,为插入复用空间。如果表是完整的,它就会把新的行拼接在表的最后。
即使MyISAM有表级别的锁,它也能在读取的同时把行拼接到 ...
Rails3-使用ajax处理并发
环境:rails 3.2.8 ruby 1.9.3
ajax技术主要通过web浏览器和服务器之间的异步交互来增强交互效果,在页面无刷新的情况下从服务器端获取数据,并显示给用户
那么如果这个交互的过程非常耗时,浏览器就会一直处理这个ajax请求,此时并发的访问就会受阻
背景:
目前有需要查看N台服务器的运行状态,在试图页面显示执行结果,而在连接服务器并查看运行状态的时候非常耗时
...
Java多线程之 concurrent 并发包
Java Tutorials -> Concurrency:
http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html
Java Concurrency Utilities:
http://docs.oracle.com/javase/7/docs/technotes/guides/concurren ...