Java多线程的学习(持续更新)
第一部分
-
什么叫多线程?
线程就是计算机用同一时刻所走的多条路径也就是同时在执行的任务。 -
学习多线程能获得什么?
能够讲集合玩的更溜,不会因为线程安全问题烦恼,将来的开发都是多线程的任务,为以后打下基础哦🙄🙄🙄。 -
线程的实现方法
通过Thread类来实现,懂得都懂,万物皆可new,
要用一个类来exteads,还要重写run方法。run方法里面就是你想要的一条新的线程哦🙄。
- 方法有:
start()开始
sleep()休眠
SetDaemon(on)设置为守护线程
记得要在start前设置。
线程都有人守护,你呢孤家寡人**
currentThread()当前线程,getsetname,设置获取线程的名称。
通过Runnable类来实现,首先要implements一个继承类,然后new出来,将new出来的对象给Thread,再new出Thread的对象,使用它。
它有如下的优势哦:
-
可以避免单继承带来的局限性,不能继承
多个类或者接口。 -
更适合多线程执行相同任务,重复干
一件事,通过不同线程,节省时间。 -
程序更加的健壮,只是更长🙄。
-
可以适应使用线程池的使用哦。
第二部分
线程安全问题与中断,锁
-
线程中断
使用的是interrupt()告知别的线程该return了 -
安排问题的解决方法
-
同步代码块
synchrnized(锁对象){}标记让锁对象排队,要每一个对象用同一把锁。 -
同步方法
把上面的代码块搞成一个单独的方法。 -
显示锁
用lock类的ReentrantLock()锁上,最后记得要unlock(),解锁。