线程就是可以单独运行的一个单元
为什么要多线程?
比如大家做开发的,肯定多人同时开发不同模块,如果1个人做,累死你。效率显而易见
java定义线程类需要继承Thread或实现Runnable
多线程肯定会产生安全问题
比如有个共通类,大家都要用,经常会发生把别人追加的东西弄没了,所以要控制并发的问题
通过同步和锁(Synchronized)保证线程安全。只要进入Synchronized区域,就保证只有一个线程使用
比如你上厕所,进入后肯定要上锁,不让别人进来了
线程暂停
wait()和sleep()类似,都是让线程处于阻塞状态暂停一段时间,不同之处在于wait会释放当前线程占有的所有的锁,而 sleep不会。
所以wait()是在Synchronized区域的,通过notify()唤醒
wati()就像你上公厕,正想上,见一美眉也要上,这时你为了绅士风范,自己就憋着,等美眉好了你再上。
sleep()就像你写代码写的头晕了,就抽根烟休息一下,等会再继续写