- 浏览: 8597 次
- 性别:
- 来自: 上海
最新评论
文章列表
括号为是否线程安全
list: LinkedList(no) ArrayList(no) Vector(yes)
Stack(yes)
map: HashMap(no) LinkedHashMap(no) HashTable(yes)
WeakHashMap TreeMap
set: HashSet(no) LinkedHashSet(no)
SortedSet TreeSet
最常用的好像为每行的前两个
特征:
1.
Linked开头的适合快速插入,删除元素, linked维护元素插入的次序
2. Set 在 HashMap
的基础上实现, 所以Set结尾 ...
8.1 网络编程的基本概念,TCP/IP协议简介
8.1.1 网络基础知识
计算机网络形式多样,内容繁杂。网络上的
计算机要互相通信,必须遵循一定的协议。目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议。
网络编程的目的就是指直接或间接地通过网络
协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。
在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面 ...
/////
// ProducerConsumer.java
//
// @author 叶雨
//
// 这是个很重要的Thread例子。需要注意的是:
// wait() 必须在synchronized 函数或者代码块里面
// wait()会让已经获得synchronized
函数或者代码块控制权的Thread暂时休息,并且丧失控制权
//
这个时候,由于该线程丧失控制权并且进入等待,其他线程就能取得控制权,并且在适当情况下调用notifyAll()来唤醒wait()的线程。
//
需要注意的是,被唤醒的线程由于已经丧失了控制权,所以需要等待唤醒它的线程结束操 ...
转自:http://lavasoft.blog.51cto.com/62575/99153
Java线程:线程状态的转换
SCJP5学习笔记
一、线程状态
线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下:
1、新状态:线程对象已经创建,还没有在其上调用start()方法。
2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状
态。在线程运行之后或者从阻塞、等待或睡眠状 ...
关键字:
集合类
Collection
:List、SetMap
:HashMap、
HashTable
如何在它们之间选择
一、Array , Arrays
Java所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。
1、
效率高,但容量固定且无法动态改变。
array还有一个缺点是,无法判断其中实际存有多少元
素,length只是告诉我们array的容量。
2、Java中有一个Arrays类,专门用来操作
array
。
arrays中拥有一组static函数,
equals():比较两个ar ...
设计线程安全的类需要
考虑哪些因素?
1) 找出哪些变量
属于对象的状态
2) 找出哪些不变量
属于对象的状态
3) 使用合适的并发策略来管理对状态的访问考虑线程安全的需求
1) 同步范围多大? 整个方法? 一个大块? 小块?
2) 有哪些限制和先决条件?
java内建的监视器模型, 通过锁定, 即在锁对象添加监视器, 一旦锁定释放, 监视器通知其他等待的线程.
Object.wait/notity/notifyAll"代理"线程安全性
如果一个类合理的使用了一个已经实现线程安全的类, 就是把线程安全性交给内部对象" ...
在Java类库中出现的第一个关联的集合类是 Hashtable
,它是JDK 1.0的一部分。 Hashtable
提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的―― Hashtable
的所有方法 ...
NIO中Selector的工作原理
在JDK1.4.2中加入了对NIO的支持,掌握其中的Selector个人认为是能实现好NIO的关键。
Selector是用来获取注册在其中的channel的相关事件的发生,也就是accept,read和write。selector中有3个key set。
key set:包含代表所有在其中注册的channel,可以通过selector.keys()得到。
selected-key set:包含所有被检测到有关注的操作已经就绪的key,通过selector.selectedKeys得到。
cancelled-key set:包含所有已经被cance ...