多线程的生命周期

最近一个项目用多线程技术比较频繁,写下日记就算是一个总结吧

线程概念

线程的生命周期

线程的实现

线程优先级

多线程的同步

线程组

 

线程:程序中单独顺序的流控制,线程本身不能运行,只能运行在程序中。

多线程:指的是在单个程序中可以同时运行多个不同的线程执行不同的任务。

多线程编程的目的,就是“最大限度地利用CPU资源”当某一线程的处理不需要占用CPU而只和I/O等资源打交道时,

让需要占用CPU资源的其它线程有机会获得cpu资源,从根本上说,就是多线程编程的最终目的。

 

java中如果我们自已没有产生线程,那么系统就会给我们产生一个线程(主线程,main方法就在主线程上运行),我们的程序都是由线程来执行的

进程:就是执行中的程序(程序是静态的概念,进程是动态的概念)

线程与进程的区别:

多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能互相影响。

线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程切换比进程切换的负担要小。

 

线程包含的七种状态 :出生状态,就绪状态,运行状态,等待状态,休眠状态,阻塞状态和死亡状态。

出生状态:就是用户在创建线程时处于的状,在用户使用该线程实例调用start()方法之前线程都处于出生状态。

就绪状态:用户调用start()方法方法之后,线程处于就绪状态(又可称为可执行状态)。

运行状态:当线程得到系统资源后就进入运行状态。

 

一旦线程进入可执行状态,它会在就绪与运行状态 下辗转,同时也有可能进入等待,休眠,阻塞或死亡状态,

当处于运行状态下的线程调用thread类中wait()方法,该线程处于等待状态,

进入等待状态的线程必须调用thread类中notify()方法才能被唤醒,而notifyAll()方法是将所有处于等待状态下的线程唤醒,

当线程调用thread类中的sleep()方法,则会进入休眠状态,

如果一个线程在运行状态下发出输入/输出请求,该线程将进入阻塞状态,

在其等待输入/输出结束时,线程进入就绪状态,对于阻塞的线程来说,即使系统资源空闲,

线程依然不能回到运行状态,当线程的run()方法执行完毕时,线程进入死亡状态。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值