• JAVA多线程编程


    一、java多线程编程概念

      1、进程:同一个操作系统中执行的一个子程序,包含了三部分虚拟CPU、代码、数据

      2、多线程:同一个操作系统中执行的多个并行的子程序。可以提高cpu的使用率。

      3、线程:在同一个进程当中执行的子程序流。

      4、多线程:同一个进程当中并发执行的多个子程序流。可以提高cpu的使用率。

      5、并发:进程是并发运行的,OS将时间划分为很多时间片段(时间片),尽可能均匀分配给正在运行程序,微观上进程走走停停,宏观上都在运行,这种运行的现象叫并发,但不是绝对意义上的“同时发生”。

      6、进程和线程的区别:

        进程有独立的进程空间,进程中的数据存放空间(堆空间和栈空间)是独立的。

        线程的堆空间是共享的,栈空间是独立的,线程消耗的资源也比进程小,相互之间可以影响的。

    二、线程编程的两种方法

      1、继承Thread类,重写run()方法

      2、实现Runnable接口,实现run()方法

    三、线程的状态

      1、NEW 新建状态:当程序用new关键字创建线程之后,该线程就处于新建状态,此时线程还未启动,当线程对象调用start()方法时,线程启动,进入Runnable状态

      2、Runnable 可运行(就绪)状态:当线程处于Runnable状态时,表示线程准备就绪,等待获取CPU

      3、Running运行(正在运行)状态:假如线程获取了CPU,则进入Running状态,开始执行线程体,即run()方法中的内容。调用yield()状态,可以是线程由Running状态进入Runnable状态

      4、Block阻塞(挂起)状态:当如下情况下,线程会进入阻塞状态:

        ①线程调用了sleep()方法主动放弃所占CPU资源

        ②线程调用了一个阻塞式IO方法(比如控制台输入方法),在该方法返回前,该线程被阻塞

      当阻塞结束时,该线程将进入Runnable状态,而非直接进入Running状态。

      5、Dead 死亡状态:

        ①当线程的run()方法执行结束,线程进入Dead状态

        ②不能对一个已经死亡的线程调用start()方法,线程死亡后将不能再次作为线程启动,系统会抛出异常

    四、注意

      1、new

    http://home.feifeishijie.com/thread-430816-1-1.html

  • 相关阅读:
    monitor system
    monitor disk
    manage account
    windows
    backup daily
    shell 脚本编程概述
    OGNL表达式
    Struts2各个功能详解(2)-输入校验和拦截器
    struts2各个功能详解(1)----参数自动封装和类型自动转换
    Struts2源码解析2
  • 原文地址:https://www.cnblogs.com/a591378955/p/8912017.html
Copyright © 2020-2023  润新知