多线程(一)--线程的运行

本文详细介绍了进程与线程的概念,包括它们的区别、线程的生命周期及创建方式。此外还讲解了常用线程方法,如sleep(), yield(), join()等。
一:线程与进程
1. 进程 :是一个正在执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元;
2.线程 : 进程的一个独立控制单元,进程不共享数据,线程可以共享数据
3多线程:使用并发原理,是多个线程呈现出共同运行的情况
 
二:线程的生命周期
1.新建:从线程被建立到使用start()之间的过程
2.就绪:线程通过start方法之后进入就绪状态,等待JVM进行资源调度
3.运行:就绪状态的线程得到资源后就可以进行run方法,运行状态的线程可以变为就绪,死亡,阻塞三种状态
4.阻塞/等待:运行中的线程使用sleep方法后,会释放所有资源,并且进入阻塞状态等待资源的再次分配。
5.终止/死亡:当线程完成时,或者触发其他终止条件时,线程会终止,并且释放所有资源
 
三:线程的创建
1.继承Thread类实现
2.通过Runable接口实现
 
四、Thread实现
   1.首先Thread的实现也是通过接入Runnable接口
   2.实现方法,方法继承Thread
   3.Thread自带的方法,start()方法,sleep()方法
五、Runnale(就绪)实现
    1.实现方法,接入Runnable接口
     2.sleep() start()等方法需要通过强转为Thread方法才可以使用,不过sleep静态方法,可以直接          
         Thread.sleep()直接调用。
     3.Runnable接口本体只有一个抽象run方法
 
六、常见线程方法
     1.sleep():与object中的wait方法,使线程进入阻塞状态(即在指定时间内不会进入就绪状态)
        阻塞结束后,线程进入就绪状态
      2.yield():线程释放当前资源,进入就绪状态,与其他就绪线程一起抢夺资源。作用一般是给同
         等优先级的线程共同执行的资格。与sleep不同,线程释放资源后,会马上进入就绪状态争夺
         cpu资源。
      3.join():调用某线程,且等待该线程执行完毕后才可以进行之前线程。
      4.setProirity():设置线程的优先级
      5:getPrority():获取线程的优先级
      6:interruput():发出中断信号,如果存在死锁现象的线程收到信号后,会抛出异常,中断当前线程
      7:start():

转载于:https://www.cnblogs.com/qqwhsj/p/10641734.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值