• 线程的学习(一)


    一、线程,进程,多线程。

    1、线程:线程指进程中的一个执行场景,也就是执行流程。

    2、进程:进程指的是一个内存中运行的应用程序,如.exe,一个进程对应一个应用程序,一个进程可以对应多个线程。

    3、多线程:指的是这个程序(一个进程)运行时产生了不止一个线程。

    二、线程的状态

    1.新建状态(New): 即创建一个线程对象:Thread t = new MyThread();

    2.就绪状态(Runnable):  执行了t.start( ) 表示当前线程已经做好准备,等待CPU调度,并不是直接执行;

    3.运行状态(Running):  CPU调度该线程;

    4.阻塞状态(Block): 

        a.等待阻塞:调用wait(),使该线程处于等待池(wait blocked pool),直到notify()/notifyAll(),

                线程被唤醒被放到锁定池(lock blocked pool ),释放同步锁使线程回到可运行状态(Runnable);

        b.同步阻塞:对Running状态的线程加同步锁(Synchronized)使其进入(lock blocked pool ), 锁被其他线程占用,

              同步锁被释放进入可运行状态(Runnable);

        c.其他阻塞:调用join()和sleep()方法或发出IO请求,sleep()时间结束或被打断,join()中断,IO完成都会回到Runnable状态,等待JVM的调度;

    5.死亡状态(Dead):线程执行完了或者在执行中因异常退出了run()方法,该线程就结束了。

    三、创建线程(三种方法)

    1.继承Thread类,重写run( )

     

    2.实现Runnable接口,重写run( )

    3.用Callable 和 Future接口创建线程

  • 相关阅读:
    harbor两层nginx代理导致push不成功401
    docker hub国内镜像
    iOS越狱后导入照片
    Failed to list *v1.Secret: secrets is forbidden: User "system:node
    Centos设置limit最大打开文件数和最大进程数
    grafana设置主页面板
    MySQL数据库设计规范
    tcp time_wait
    mysqldiff No module named utilities.common.tools
    mongodb 慢查询排查
  • 原文地址:https://www.cnblogs.com/dongtian-blogs/p/10564387.html
Copyright © 2020-2023  润新知