zoukankan      html  css  js  c++  java
  • day24-多线程和常见设计模式

    1:多线程(理解)

    (1)JDK5以后的针对线程的锁定操作和释放操作

    Lock

    (2)死锁问题的描述和代码体现

    (3)生产者和消费者多线程体现(线程间通信问题)

    以学生作为资源来实现的

    资源类:Student

    设置数据类:SetThread(生产者)

    获取数据类:GetThread(消费者)

    测试类:StudentDemo

    代码:

    A:最基本的版本,只有一个数据。

    B:改进版本,给出了不同的数据,并加入了同步机制

    C:等待唤醒机制改进该程序,让数据能够实现依次的出现

    wait()

    notify()

    notifyAll() (多生产多消费)

    D:等待唤醒机制的代码优化。把数据及操作都写在了资源类中

    (4)线程组

    (5)线程池

    (6) 多线程实现的第三种方案

    (7) 多线程的面试题

    (8) 任务计时器

    1.1 面试多线程

    1:多线程有几种实现方案,分别是哪几种?

    两种。

    继承Thread

    实现Runnable接口

    扩展一种:实现Callable接口。这个得和线程池结合。

    2:同步有几种方式,分别是什么?

    两种。

    同步代码块

    同步方法

    3:启动一个线程是run()还是start()?它们的区别?

    start();

    run():封装了被线程执行的代码,直接调用仅仅是普通方法的调用

    start():启动线程,并由JVM自动调用run()方法

    4:sleep()wait()方法的区别

    sleep():必须指时间;不释放锁。

    wait():可以不指定时间,也可以指定时间;释放锁。

    5:为什么wait(),notify(),notifyAll()等方法都定义在Object类中

    因为这些方法的调用是依赖于锁对象的,而同步代码块的锁对象是任意锁。

    而Object代码任意的对象,所以,定义在这里面。

    6:线程的生命周期图

    新建 -- 就绪 -- 运行 -- 死亡

    新建 -- 就绪 -- 运行 -- 阻塞 -- 就绪 -- 运行 -- 死亡

    建议:画图解释。

    2:设计模式(理解)

    (1)向对象的常见设计原则

    单一

    开闭

    里氏

    依赖注入

    接口

    迪米特

    (2)设计模式概述和分类

    A:经验的总结

    B:三类

    创建型

    结构型

    行为型

    (3)改进的设计模式

    A:简单工厂模式

    B:工厂方法模式

    C:单例模式(掌握)

    a:饿汉式

    b:懒汉式

    (4)Runtime

    JDK提供的一个单例模式应用的类。

    还可以调用dos命令。

  • 相关阅读:
    个人项目作业
    软件工程个人博客作业
    软件工程热身作业
    OO第四单元作业总结
    OO第三单元作业总结
    OO第二单元作业总结
    酸甜苦辣皆阅历,悲欢离合尽人生——软件工程个人总结
    Centos7里yum出问题可以试试
    idea 报错 Two modules in a project cannot share the same content root
    关于本地git的补充
  • 原文地址:https://www.cnblogs.com/csslcww/p/9206950.html
Copyright © 2011-2022 走看看