day13(多线程通信)总结
8页1、Day13总结1、 单列设计模式:1、 恶汉式:代码体现:Class SinglePrivtae static final Single s=new Single();Private Single()Public static Single getInstance()Return s;2、 懒汉式:延迟加载,存在着多线程并发访问的安全问题,需要使用同步来解决安全问题,但是同步会降低效率,所以使用双重if()判断形式解决效率低的问题。实现代码:Class SinglePrivate Single()Private static Single s=null;Public static Single getInstance()If(s=null)Synchroinzed(Single.class)If(s=null)S=new Single();Return s;2、 死锁:即同步的弊端,不是线程和进程没有了,而是不动了。表现形式:同步嵌套的时候,使用的锁不一样,容易引发死锁。实现代码: 3、 线程间通信:其实就是多个线程在操作同一个资源,但是操作的动作不同,动作不同,意味着线程的任务是不一
2、样的。就需要对任务对象进行单独的封装和描述。4、 等待唤醒机制:最重要的机制重点掌握Wait():等待:让当前线程出于冻结状态,当前线程就被存储到线程池当中。Notify();唤醒线程池中的任意一个线程,让该线程恢复到运行状态,会具备CPU的执行资格。notifyAll():唤醒线程池中的所有等待的线程,让它们具备CPU的执行资格。所谓的监视器:就是多线程中的锁。上面几个功能必须在同步当中,要标示清楚它所在的锁。也就说:wait到底让哪个锁上的线程等待了,notify:到底是唤醒了哪个锁上被等待的线程。NotifyAll:用上面的一样。为什么是Object中的方法?因为这些方法都是必须要标识出所属的锁,而锁是任意的对象。能被任意对象调用的方法一定定义在Object类中。一般在使用等待和唤醒时通常都得有标记。代码优化:ResourceDemo3.javaclass Resourceprivate String name;private String sex;private boolean flag = false;public synchronized void set(String n
3、ame,String sex)if(flag)trythis.wait();catch(Exception e) = name;this.sex = sex;flag = true;this.notify();public synchronized void out()if(!flag)trythis.wait();catch(Exception e)System.out.println(name+-+sex);flag = false;this.notify();class Input implements RunnableResource r;Input(Resource r)this.r = r;public void run()int x = 0;while (true)if(x=0)r.set(mike,nan);elser.set(丽丽,女女女女女);x = (x+1)%2;class Output implements RunnableResource r;Output(Resource r)this.r = r;public void run()while(true)r
4、.out();class ResourceDemo3public static void main(String args) Resource r = new Resource();Input in = new Input(r);Output out = new Output(r);Thread t1 = new Thread(in);Thread t2 = new Thread(out);t1.start();t2.start();4、 生产者和消费者问题: 遇到的问题:1、 出现了错误数据,是因为多生产多消费的时候,被唤醒的线程没有再次判断标记就执行了,解决时将if判断边成while循环判断,(这种方式是最安全的)2、 有了while判断后死锁了,因为本方线程唤醒的有可能还是本方线程,所以导致死锁,解决:本方必须唤醒对放才有效,notify只能唤醒一个, 还不确定,所以干脆唤醒所有的,肯定包含对象,至于被唤醒的本方会判断标记是否继续等待。实现代码:Class ResourcePrvate String name;Private int count;Private boolean f
《day13(多线程通信)总结》由会员cl****1分享,可在线阅读,更多相关《day13(多线程通信)总结》请在金锄头文库上搜索。
大学学生会办公室工作计划范文(7篇)
小学的小学作文500字六篇
基础心理学考试卷
“安全生产月”安全生产管理工作总结
断桥隔热铝合金门窗施工方案设计
年度行政工作总结(4篇).doc
利润中心制度实施总体方案KD
供应链管理的三个层次
地籍测量实习报告锦集七篇
护士工作总结报告(3篇).doc
提前释放申请书
冬至节气活动方案范文(通用6篇)【可编辑】
高中语文综合练习Word版
咨询工程师《宏观经济政策与发展规划》考试(全考点覆盖)名师点睛卷含答案41
全国初中化学竞赛黑龙江初赛
风电安全工作管理规定(正式)
Cisco路由器配置实例经典
四平市噪声污染防治项目建议书
人教版小学四年级英语教案
污水处理厂改造方案(DOC)
2022-08-19 8页
2023-01-15 16页
2023-12-02 11页
2023-06-19 18页
2022-11-25 6页
2022-08-09 4页
2023-03-31 4页
2023-02-13 3页
2024-02-27 4页
2022-11-29 153页