Javaweb微专业第十六讲-----多线程编程(预告)

线程与进程

  1. 为什么需要多线程
    发挥多核CPU的优势
    防止阻塞
    便于建模

  2. 创建现成的方式,一般有三种:

    1. 继承Thread类
    2. 实现Runnable接口
    3. 实现Callable接口

    实现接口的方式比继承类的方式更灵活,也能减少程序之间的耦合度,面向接口编程也是设计模式6大原则的核心

Tread类

runable接口

Callable接口

线程安全

  1. 不可变
  2. 绝对线程安全
  3. 相对线程安全
  4. 线程非安全

线程同步

线程间通信

线程死锁

线程优先级

线程控制:挂起、停止和恢复

线程的生命周期

几个问题

  1. start()方法与run()方法的区别
  2. Runnable接口和Callable接口的区别
  3. CyclicBarrier和CountDownLatch的区别
  4. Volatile关键字的作用
  5. 如何获取到线程dump文件
  6. 一个线程如果出现了运行时异常会怎么样
  7. 如何在两个县城建共享数据
  8. sleep方法和wait方法有什么区别
  9. 生产者消费者模型的作用是什么
  10. 为什么wait方法和notify/notifyAll方法要在同步快种调用
  11. ThreadLocal有什么用
  12. wait方法和notify/notifyAll方法在放弃对象监视器时有什么区别
  13. 为什么要使用线程池
  14. 怎么检测一个线程是否持有对象监视器
  15. synchronize和ReentrantLock的区别
  16. ConcurrentHashMap的并发度是什么
  17. ReadWriteLock是什么
  18. FutureTask是什么
  19. Linux环境下如何查找那个线程使用cpu最长
  20. Java编程写一个会导致死锁的程序
  21. 怎么唤醒一个阻塞的线程
  22. 不可变对象对多线程有什么帮助
  23. 什么是多线程的上下文切换
  24. 如果你提交任务时,线程池队列已满,这时会发生什么
  25. Java中用到的线程调度算法是什么
  26. Thread.sleep(0)的作用是什么
  27. 什么是自旋
  28. 什么是Java内存模型
  29. 什么是CAS
  30. 什么是乐观锁和悲观锁
  31. 什么是AQS
  32. 单例模式的线程安全性
  33. Semaphore有什么作用
  34. Hastable的size方法种明明只有一条语句“return count”,为什么还要做同步
  35. 线程类的构造方法、静态块是被哪个线程调用的
  36. 同步方法与同步快,哪个是更好的选择
  37. 高并发、任务执行时间短的业务怎么使用线程池?并发不高、任务执行时间长的业务怎么使用线程池?并发高、业务执行时间长的业务怎么使用线程池
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小嘉丶学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值