JavaBasicsNo7: Thread & Process

Thread &  Process

进程与线程

                定义                 范围                   基本状态                                        作用

进程    资源分配单位    完整的资源平台   就绪、阻塞、执行                          并发执行程序 [提高利用率、吞吐量]

线程    CPU单位           寄存器、栈          就绪、阻塞、等待、锁定、执行    减少并发的时间和空间开销

联系:进程=线程+资源平台   []

           资源平台:地址空间[代码段、数据段]+打开文件等各种资源

           线程:

状态

进程  <1>就绪:Ready     

        Ready —Running     Scheduler picks this process     【进程调度】

        <2>阻塞:Blocked

        Blocked—Ready      Input becomes available

        <3>执行:Running

        Running—Blocked   Process blocks for input

        Running—Ready      Scheduler picks another process      

线程<0>创建:New            分配PCB

        New— Runnable        start()            

       <1>就绪:Runnable    分配PCB、分配资源、线程进入主存

       Runnable—Running     获取CPU

       <2>执行:Running      分配PCB、分配资源、线程进入主存、分配CPU

       Running— Runnable           yield()

       Running—阻塞:Blocked    join()、sleep()       

       Running—等待:Blocked    wait()    

       Running—锁定:Blocked    synchronized同步锁开启 

       Running—Dead:                   run()\异常退出

       <3>阻塞:Blocked     

       阻塞:Blocked—Runnable    sleep()结束、join()中断、IO完成

       <4>等待:Blocked     

       等待:Blocked—锁定:Blocked    nodity()\notifyall()\interrupt()

       <5>锁定:Blocked     

       锁定:Blocked—Runnable   synchronized同步锁释放

       <0> 终止:Dead      保留状态码、计时统计数据—提供其他进程收集

多线程问题:Runnable!

线程同步与互斥

同步:多线程事件存在时序关系。  各线程协同合作、相互配合         

互斥:多线程同时访问共享资源     [同一时刻—同一线程—共享数据]

互斥锁:1对象拥有1个互斥锁    [任意时刻,1个线程-访问对象]

         synchronized( 共享对象 ){   代码块  }

线程调度与优先级

线程调度:控制同一个CPU上多线程的运行顺序。[可抢占的优先级调度算法]

                  N个thread:1个CPU   (同一时间点:1 cpu:1thread)

线程优先级:  线程的优先级,[1-10]     Thread.MIN_PRIORITR\ MAX

                        缺省优先级,    [ 5 ]        Thread.NORM_PRIORITR         举例:main

调度队列:Priority Number——Runable threads

生产者与消费者

多线程multithreadin

定义:从软件或者硬件上实现多个线程并发执行的技术。

硬件:同一时间执行多于一个线程   1 time : n Thread

软件:一个程序中,独立运行的程序片段叫作“线程”(Thread),

程序:Computer Program  一系列指令的集合     程序=数据+进程控制块=数据结构+算法

进程:            一段程序的执行过程。           通过程序计数器的值和处理寄存器的内容来表示

Thread.State:

     NEW              新建状态

     RUNNABLE  就绪状态

     BLOCKED     阻塞状态

     WAITING

     TIMED_WAITING

     TERMINATED

猜你喜欢

转载自blog.csdn.net/ddhmbbklyk2018/article/details/82848565