zoukankan      html  css  js  c++  java
  • java多线程基础

    Java多线程基础

    @(博客文章)[java]

    一、基础内容

    1、线程的基本概念

    (1)一个线程是一个程序内部的顺序控制流。

    (2)线程和进程
    –每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大。

    –线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。

    –多进程:在操作系统中,能同时运行多个任务(程序)。

    –多线程:在同一应用程序中,有多个顺序流同时执行。

    2、JAVA线程基础

    JAVA的线程是通过java.lang.Thread类来实现的。

    VM启动时会有一个由main()方法所定义的线程。

    可以通过创建Thread的实例来创建新的线程。

    每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。

    通过调用Thread类的start()方法来启动一个线程。

    3、创建新线程的2种方法

    (1)继承Thread类

    (2)实现Runnable接口

    建议使用第二种方式,即实现Runnable接口。

    二、线程状态及其变迁

    1、Java线程的六种状态

    状态名称 说明
    NEW 初始状态,线程被构建,但还没有调用start()方法。
    RUNNABLE 运行状态,Java线程将操作系统中的就绪和运行两种状态统一称为RANNABLE
    BLOCK 阻塞状态,表示线程阻塞于锁
    WAITING 等待状态,表示当前线程需要等待其它线程做出一些待定动作(通知或中断)
    TIME_WAITING 超时等待状态,类似于WAITING,但可以在指定时间后自行返回
    TERMINATED 终止状态,表示当前线程已经执行完毕

    2、线程状态的变迁

    image

  • 相关阅读:
    MySQL学习笔记(一)
    MySQL学习笔记(六)
    MySQL学习笔记(三)
    MySQL学习笔记(二)
    eclipse使用SSH框架出现There is no Action mapped for namespace [/] and action name [] associated with context path错误
    网页分页功能的实现
    Linux配置LNMP环境(一)配置Nginx
    Linux配置LNMP环境(二)配置PHP
    [转]在WPF的TreeView中实现右键选定
    .NET 导出到Excel功能
  • 原文地址:https://www.cnblogs.com/lujinhong2/p/4861857.html
Copyright © 2011-2022 走看看