线程唤醒多线程之等待唤醒机制线程唤醒
发一下牢骚和主题无关:
总结一下多线程中之重要点——等待唤醒制机
先用一个艰深的例子来明说等待唤醒制机的理原,小时候,我们都起一玩过一个游戏,名字想不起来了,就是一伙小朋 友,抽出其中最走运的一个,其他的就到处跑,逃离最走运的,规矩:当最走运的小盆友要住抓其他小盆友中的一个时,如果反响的快时,说一声“木(定,就是不能动)”,走运的小盆友就不能抓他,而去抓其他的,只有等到其他的小盆友来碰他(木的那个)一下,才可以被拯救,又当部全木完时,最走运的小盆友就变运幸了,同时部全拯救。
析分:最走运的小盆友就如CPU,做着切换动作, 其中木的那个小盆友就如一个线程,“木”就如wait(),碰他一下就如notify(),部全拯救就如notifyAll(),
线程之间的关系是同等的,彼此之间不并存在任何依附,它们各自竞争CPU资源,各执己见,并且还无条件地阻挠其他线程对共享资源的步异问访。然而,也有很多现实问题求要不仅要步同的问访统一共享资源,而且线程间还彼此制牵,通过互相通信来向前进推。
注意点:1在循环式选择上,最好用使while循环,他是须要先判断的,
2当有很多线程时,唤醒用notifyAll();
单简的等待唤醒制机码代:
文章结束给大家分享下程序员的一些笑话语录:
爱情观
爱情就是死循环,一旦执行就陷进去了。
爱上一个人,就是内存泄露--你永远释放不了。
真正爱上一个人的时候,那就是常量限定,永远不会改变。
女朋友就是私有变量,只有我这个类才能调用。
情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。