问题:只使用单个线程完成多个任务(调用多个方法),肯定比用多个线程来完成用的时间更短,为何扔需要多线程呢?
多线程的优点:
1.提高应用程序的响应。对图形化界面更有意义,可增加用户体验。
2.提高计算机系统CPU的利用率
3.改善程序结构。将既长又复杂的进程分为多个线程,独立运行,利于理解和修改
java中的线程分为两个类:一种是守护线程,一种是用户线程
①他们在几乎每个方面都是相同的,唯一的区别是判断jvm何时离开
②守护线程是用来服务用户线程的,通过statr()方法前调用thread.setDaemon(true)可以把一个用户线程
变成一个守护线程
③java垃圾回收就是一个典型的守护线程
④若jvm中都是守护线程,当前jvm将退出
线程的生命周期
新建:当一个Thread类或其他子类的对象被声明并创建时。新生的线程对象处于新建状态
就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件
运行:当就绪的线程被调度并获得处理器资源时。便进入运行状态,run()方法定义了线程的操作和功能、
阻塞:在某种特殊情况下,被认为挂起或执行输入输出操作时,让出 CPU并临时中止自己的执行,进入阻塞状态
死亡:线程完成了他们的全部工作或线程被提前强制性地中止