传智播客-25-Java线程的学习

25.01_多线程(多线程方法)

  • 1.yield让出CPU
  • 2.setPriority()设置线程的优先级;最高10级,最低1级,默认5级

25.02 _多线程(单例设计模式)

  • 单例设计模式:保证类在内存中只有一个对象

  • 如何保证类在内存中只有一个对象呢?

    • (1)控制类的创建,不让其他类来创建本类的对象。private
    • (2)在本类中定义一个本类的对象。Singleton s;
    • (3)提供公共的访问方式。 public static Signleton getInstance() {return s}
  • 单例写法两种:

    • (1)饿汉式,开发用这种方法。
    •            //大萨达大萨达
                 代码块
                 大赛大萨达
                 大萨达
                 大赛   
      
    • (2)懒汉式 面试写这种方法。多线程的问题?
    •            //大萨达
                 大萨达
      

25.03_多线程(Runtime类)

  • Runtime类是一个单例类

25.04_多线程(Timer)

  • Timer类:计时器

25.05_多线程(两个线程间的通信)

  • 1.什么时候需要通信
    • 多个线程并发执行时,在默认的情况下CPU是随机切换线程的
    • 如果我们希望他们有规律的执行,就可以使用通信,例如每个线程执行一次打印
  • 2.怎么通信
    • 如果希望线程等待,就调用wait()
    • 如果希望唤醒等待的线程,就调用notify();
    • 这两个方法必须在同步代码中执行,并且使用同步锁对象调用

25.05_多线程(线程间的通信面试题)

  • 在同步代码块中锁对象是谁,就用哪个对象来调用wait

  • 为什么wait() 方法和notify() 方法需要定义在Object中

  • 所有的对象都是Object的子类对象,而所有的对象都可以当做锁对象

  • sleep方法和wait方法的区别

    • 1.sleep方法必须传入参数,参数就是时间,当时间到了,不用唤醒自动醒来
      wait方法不是必须传入参数,如果没有参数,遇到wait就等待,如果传入参数,等参数的时间到后等待
    • 2.sleep方法在同步中不释放锁,wait方法在同步中释放锁。

25.06_多线程(三个或三个以上间的线程通信)

25.07_多线程(JDK1.5的新特性互斥锁)

  • 1.同步
    • 使用ReentrantLock类的lock()和unlock()方法进行同步(reentrant:再进去)
  • 2.通信
    • 使用ReentrantLock类的newCondition()方法可以获取Condition对象
    • 需要等待的时候使用Condition的await() 方法,唤醒的时候使用signal() 方法
    • 不同的线程使用不同的Condition,这样就能区分唤醒的时候找哪个线程了。
      (Condition相当于监视器)

25.11_设计模式(简单工厂模式概述和适用)

25.12_设计模式(工厂方法模式概述和适用)

25.13_GUI(如何创建一个窗口显示)-----鬼编程

  • Graphical Uer Interface(图形用户接口)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值