打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java基础5

java基础5

 

1.前台线程和后台线程。在线程start之前调用setDaemon(true),可以将线程变为后台线程。
前台线程:主线程(main方法中的程序)结束,但线程只要有一个还在运行,那主进程就不会结束。
后台线程:主线程结束,其他线程都会结束。
2.join方法用来联合线程,是将线程合并到调用该语句的线程中。
3.一般情况下,我们通过实现Runnable接口来实现多线程,而不是去继承Thread类。Runnable适合多个相同程序代码的线程去处理统一资源的情况,把线程同程序的代码,数据有效分离,较好的体现了面向对象的设计思想。
4.表记录的复制的中途取消,或者安装文件时中途取消,这都需要多线程来实现。还有服务器的访问,网络聊天程序,都是用多线程。
5.synchronized(锁旗标 biaozhi) {} 这个代码块实现了代码的同步。biaozhi可以是任意的对象。biaozhi为1可以执行,为零则不能执行。线程进入synchronized后biaozhi变为0,直到执行完代码块后解锁,biaozhi变为1.
6.方法前的修饰符synchronized所用的biaozhi是this。
7.死锁的例子:中国人用筷子吃饭,美国人用刀叉,当中国人拿着刀叉而美国人拿着筷子时,双方不相信对方,于是产生死锁。
8.如果想让两个线程类的方法同步,那么需要synchronized方法的biaozhi对象相同。
9.不一定非得有线程wait之时我们才可以调用notify,就好比饭馆服务员喊:有空座位了,而路人不一定非得进去一样。
10.线程的等待和唤醒过程:Thread t-->synchronized(o)-->o.wait()-->o.notify()
首先线程t得到对象o的lock旗标---此时线程t被放在对象o的等待线程池中,t自动释放o的锁旗标---当另外的线程执行了对象o的notify()方法后,线程t可能会被从o的等待线程池中释放出来,并且移动到等待线程对象o的锁旗标的线程池中,当t得到锁旗标时就会执行下去。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java多线程程序设计详细解析
java线程的几个概念和方法
java同步中,为什么要wait,又notify谁?
Java基础学习——线程故事之同步
Java编程思想读书笔记一:并发
java并发编程学习1
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服