61,Java中,所有链表都是 双向链表
62,多线程在比较低的层次上扩展了多任务的概念,一个程序可以同时执行多个任务,每个任务称为一个线程。
多进程 多线程的本质区别: 每个进程拥有自己一整套的变量,而多线程需要共用。
63,线程如何响应中断 是 线程自己要考虑的事。
64,线程状态
new 新生
runnable 可运行
blocked 被阻塞 当线程试图获取内部锁,而该锁被其他线程占有时,线程阻塞
waiting 等待 wait 或者 join
timed waiting 计时等待
Terminated 被终止
65,不要将程序的正确性 依赖 优先级上
66,守护线程 (如果只剩下守护线程, 虚拟机就退出了),这个方法,必须在线程启动之前调用
t.SetDaemon(true)
67,解决线程同步的问题 ReentrantLock
myLock.lock();
try{
//some code
}finally{
myLock.unlock();
}
Condition对象是锁的。
68,synchronized 内部的对象锁
69,volatile 说明 这个域 可能被另一个线程同步更新
70,下面三个条件下,并发访问安全
1,final 域
2,对域的访问由共有的锁保护
3,volatile的
71,为什么弃用stop 和 suspend方法
导致死锁
72,或者使用阻塞队列,来避免使用锁
73,并发集合