zoukankan      html  css  js  c++  java
  • 线程的学习(一)

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

    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接口创建线程

  • 相关阅读:
    程序员的学习和积累
    【STL】-迭代器的用法
    【STL】-list的用法
    【STL】-deque的用法
    【STL】- vector的用法
    数据结构-各种排序算法
    【STL】-priority_queue的用法
    数据结构-二项队列
    IT公司100题-8-智力题
    IT公司100题-7-判断两个链表是否相交
  • 原文地址:https://www.cnblogs.com/dongtian-blogs/p/10564387.html
Copyright © 2011-2022 走看看