当前位置: 技术问答>java相关
wait()和notify() and HashMap
来源: 互联网 发布时间:2017-03-11
本文导语: 1。在线程队列中,wait() 使当前线程处于等待状态直到别的线程调用notify()来通知它,如果有3个以上的线程,怎么知道notify()通知的哪一个正在等待的线程?是不是选择优先级较高的线程获得锁? 2。而一些显式的调...
1。在线程队列中,wait() 使当前线程处于等待状态直到别的线程调用notify()来通知它,如果有3个以上的线程,怎么知道notify()通知的哪一个正在等待的线程?是不是选择优先级较高的线程获得锁?
2。而一些显式的调用了wait()方法线程只能在其它线程中调用notify() or notifyAll()来唤醒, 但wait(int i)方法在等待间是否其它线程优先级较高synchronized()在执行,(此时并没有调用notify() or notifyAll()),或者只是等待,其它synchronized()并不执行?
3。HashMap类中书上没有说有顺序样,但此例.结果为何有序?
import java.util*;
class HashMapTest
{
public static void main(String[] args)
{
HashMap hm=new HashMap();
hm.put("Game1","Hearts");
hm.put(null,"Chess");
hm.put("Game3","Hearts1");
hm.put("Game4","Hearts2");
System.out.ptintln(hm);
}
}
2。而一些显式的调用了wait()方法线程只能在其它线程中调用notify() or notifyAll()来唤醒, 但wait(int i)方法在等待间是否其它线程优先级较高synchronized()在执行,(此时并没有调用notify() or notifyAll()),或者只是等待,其它synchronized()并不执行?
3。HashMap类中书上没有说有顺序样,但此例.结果为何有序?
import java.util*;
class HashMapTest
{
public static void main(String[] args)
{
HashMap hm=new HashMap();
hm.put("Game1","Hearts");
hm.put(null,"Chess");
hm.put("Game3","Hearts1");
hm.put("Game4","Hearts2");
System.out.ptintln(hm);
}
}
|
Hashmap用来替代hashtable
.net中对应Hashtable
只有名称索引
.net中对应Hashtable
只有名称索引
|
HashMap* 基于一个散列表实现(用它代替Hashtable)。针对“键-值”对的插入和检索,这种形式具有最稳定的性能。可通过构建器对这一性能进行调整,以便设置散列表的“能力”和“装载因子”