多线程

····程序是放在线程里面运行的 ,线程是放在cpu里面运行的。

·······并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。

[外链图片转存失败(img-cUOvJNwv-1564402999287)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1564398629761.png)]

······把多个线程交给cpu交替处理,会产生不可共性,也就会出现bug

·········创建线程的俩种方法:1、直接通过线程的实例 重写run方法

​ 2、实现runnable接口

、、、核心性能:提高效率

···步骤

1写一个类直接继承Thread类重写run方法。

2该run()方法的方法体就代表了线程需要完成的任务。

3创建Thread子类的实例。

4调用线程对象的start()方法来启动该线程

[外链图片转存失败(img-YWDDCi3X-1564402999289)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1564401156659.png)]

[外链图片转存失败(img-rmrHkvUf-1564402999290)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1564401203846.png)]

使用Runnable的优点

  1. 适合多个相同的程序代码的线程去处理同一个资源
  2. 可以避免java中的单继承的限制
  3. 增加程序的健壮性,代码可以被多个线程共享,代码和数据独立
  4. 线程池只能放入实现Runable或callable类线程,不能直接放入继承Thread的类

线程的生命周期

​ New(初始化状态)

​ Runnable(可运行/运行状态)

​ Blocked(阻塞状态)

​ Waiting(无时间限制的等待状态)

​ Timed_Waiting(有时间限制的等待状态)

​ Terminated(终止状态)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值