并发

程序是一段静态的代码,进程是程序中一次动态的执行 线程是比进程更小的单位,不能独立存在,必须依靠进程,同一进程中各线程共享进程中存储空间的数据,每个线程都有自身产生、存在、消亡的过程 ,它是动态的。

多线程就是程序执行过程中可以产生多条执行流 Java实现多线程的途径有两种:

(1)创建一个Thread类:   

         用Thread类实现线程,必须为Thread定义一个子类,并且重写run()方法。   

        例:  class cat extends Thread      

                  {    

                     public void run()    

                             ...     

                     }    

            由于Java只支持单重继承,用这种方法定义的类不可再继承其他父类

(2)实现一个runnable接口:   

       设计一个实现runnable接口的类,重写run()方法,创建类对象

使用new关键字创建线程,使用start()方法启动线程

线程的几种状态:

New (新建)//新建了一个线程 ,没有启动

Runnable (可运行)//线程已经启动,处于run()方法之中

running (运行)//处于排队等待序列中

Blocked (被阻塞)//一个正在执行的线程因特殊原因,被暂停执行,进入阻塞状态

Waiting (等待) Timed waiting (计时等待)

Terminated (被终止)//自然死亡或者异常捕获

可以使用getState方法获得当前的线程状态

Java线程执行采用优先级策略:

(1)优先级高的先执行,低的后执行

(2)在缺省优先级的情况下,先执行继承父类的优先级

(3)优先级相同的情况下,按照“先进先出”的队列情况执行

Thread类有三个与线程优先级有关的静态量:

MAX_PRIORITY:最大优先权,值为10;

MIN_PRIORITY:最小优先权,值为1;

NORM _PRIORITY:默认优先权,值为5。

程序中可以调用getPriority()获得当前线程优先级

原文地址:https://www.cnblogs.com/1028-yue/p/8053526.html