zoukankan      html  css  js  c++  java
  • Java 多线程概念

    1、为什么要使用多线程: 

    1. 更多的处理器核心。
    2. 更快的响应时间。
    3. 更好的变成模型。

    2、线程的优先级:

        现代操作系统基本采用时分的形式调度运行的线程,操作系统会分出一个个的时间片,线程会分配到若干时间片,当线程的时间片用完了就会发生线程调度,并等待着下次分配。线程分配到的时间片多少也就决定了线程使用处理器资源的多少,而线程优先级就是决定线程需要多或者少分配一些处理器资源的线程属性。

        在Java线程中,通过一个整形成员变量priority来控制优先级,优先级的范围从1~10,在线程构建的时候可以通过setPripority(int)方法来修改优先级,默认优先级是5,优先级高的线程分配时间片的数量要多于优先级低的线程。设置线程优先级时,针对频繁阻塞(休眠或者I/O操作)的线程需要设置较高优先级,而偏重计算(需要较多CPU时间或者偏运算)的线程则设置较低的优先级,确保处理器不会被独占。

        线程优先级不能作为程序正确性的依赖,因为操作系统可以完全不用理会Java线程对于优先级的设定。

    3、线程的状态:

    状态名称  说明
    NEW  初始状态,线程被构建,但还没有调用start() 方法
    RUNNABLE  运行状态,Java线程将操作系统中的就绪和运行两种状态笼统的称作  运行中
    BLOCKED  阻塞状态,表示线程阻塞于锁
    WAITING  等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或中断)
    TIME_WAITING  超时等待状态,该状态不同于WAITING,它是可以在指定的时间自行返回的
    TERMINATED  终止状态,表示当前线程已经执行完毕
  • 相关阅读:
    Let’s Work on an LLVM Superoptimizer
    菜鸟程序员的成长之路(二)——时间都去哪儿了
    python进阶五_类(二)
    python进阶五_类(一)
    基于asp.net + easyui框架,一步步学习easyui-datagrid——完成,总结(四)
    给师弟师妹的一个计算机专业书单
    python进阶四_模块调用
    python进阶三_函数
    实训第一天--增删改查加hibernate+搭建环境常见问题
    9周的项目实训从今天就开始了,
  • 原文地址:https://www.cnblogs.com/gouge/p/9117363.html
Copyright © 2011-2022 走看看