0_简介_chapter01_简介_1_简介

  • 线程的优势

    (1) 发挥多处理器的强大能力

    (2) 建模简单

    每个线程只包含一种类型的任务,方便编写和测试

    (3) 异步事件的简化处理

    使用非阻塞IO的复杂性远远高于同步IO

    (4) 响应更灵敏的用户界面

  • 线程带来的风险

    (1) 安全性问题

    带来不可预测的结果

    (2) 活跃性问题

    死锁、活锁、饥饿问题

    (3) 性能问题

    线程切换需要时间

  • 已经存在的线程的应用

    即使在程序中没有显式的创建线程,很有可能也使用了多线程

    (1) JVM启动时,创建后台线程,用于垃圾收集等

    (2) java.util.Timer类

    (3) Servlet和JSP

    如果没有在分布式环境部署,则web.xml中声明了几个Servlet就创建几个Servlet实例。因此一个Servlet实例可能会被多个线程使用,需要是线程安全的

    (4) Swing和AWT

    有一个事件分发线程,当某个用户界面事件发生时,在事件线程中调用应用程序的事件处理器

你可能感兴趣的:(0_简介_chapter01_简介_1_简介)