一、前言
本来没有准备写这个的。但是还是为了自己,同时也是为了别人。将我看书获得的一些体会写出来,希望有缘分的朋友看得到。这个只是一些提纲性的东西,本身就是自己看的,估计懂的少了。实在需要,我可以细心讲解。在下一步看线程池的时候,我总结一下JDK的一些多线程管理的知识。
二、多线程总结
前面我们讲解了线程多线程:
* 主要讲解了一些锁定概念,锁保证了线程的安全;* object+synchnozed:wait+notify
* 线程方法总结:
* 1\suspend挂起+resume恢复=会产生死锁
* 2\join加入当前线程+yield谦让(暂时放弃)
* 3\线程组:达到明确知道你的线程属于哪个组
* 4\线程优先级别 默认为5,总共为1-10
* 5\守护线程,在其他线程结束之后,就结束
* 6\同步关键字synchronized
* 7\线程中的的不安全arraylist与hashmap:arraylist由于过多,list越界;hasmap的链表破坏.容易next乱指(都是由于多线程访问引起)
* 8\java基础类型被制定就不能修改指:例如Integer
* JDK线程加锁总结:
* 1\synchronized扩展,重入锁RenntrantLok.重入锁需要自己控制lock与unlock;
* 2\reentrantLock的中断可以避免死锁
* 3\RenntacntLock可以使用trylock 可以设置时间等待
*4\重入锁的公平锁
* 5\重入锁的好搭档 condition 的wait与sigal
* 6\信号量semahpore----准许同时可以访问
* 7\信号量升级版本 读写所ReadWriteLock 写写互斥
* 8\倒计时CountDownLathc-----计数实现任务;(cyclicBarrier循环栅栏)
* 9线程阻塞-----park与unpark 另一个unpar可以解锁另一个park