学习Java的第三十天(线程)

程序:为完成特定任务、用某种语言编写的一组指令的集合。指一段静态的代码。

进程:是程序的一次执行过程,或是正在运行的一个程序。程序是静态的,进程是动态的。进程是资源分配的单位。

线程:是一个程序内部的一条执行路径。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器。

并行:多个cpu同时执行多个任务(每个人同时做不同的事)

并发:一个cpu同时执行多个任务(多个人做同一件事)

多线程的优点

  1. 提高应用程序的响应
  2. 提高cpu的利用率
  3. 改善程序结构

使用多线程的原因

  1. 程序需要同时执行两个或多个任务
  2. 程序需要实现一些需要等待的任务
  3. 需要一些后台运行的程序

多线程的创建:

  1. 继承于thread类
    1.1创建一个继承于thread类的子类
    1.2重写thread类的run()
    1.3创建thread子类的对象
    1.4通过此对象调用start()
  2. 实现Runnable接口的方式
    2.1创建一个实现了Runnable接口的类
    2.2实现类去实现Runnable中的抽象方法:run()
    2.3创建实现类的对象
    2.4将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
    2.5通过Thread类的对象调用start()

thread中的常用方法

  • start():启动当前线程;调用当前线程的run()
  • run():通常需要重写thread类中的子方法,将创建的线程执行的操作声明在此方法中
  • currentThread():静态方法,返回执行当前代码的线程
  • getName():获取当前线程的名字
  • setName():设置当前线程的名字
  • yield():释放当前CPU的执行权
  • join():在线程a中调用线程b的join(),此时线程a进入阻塞状态,知道线程b完全执行完以后,线程a才结束阻塞状态
  • stop():已过时,当执行此方法时,强制结束当前线程
  • sleep(long milltime):让当前线程"睡眠"指定的millitime毫秒,在指定的millitime毫秒时间内,当前线程时阻塞状态
  • isAlive():判断当前线程是否存活

比较创建线程的两种方式:
开发中优先选择实现Runnable接口的方式
原因:
实现的方式没有类的单继承性的局限性
实现的方式更适合来处理多个线程有共享数据的情况
联系:public class Thread implements Runnable
相同点:两种方式都需要重写run(),将线程要执行的逻辑声明在run()中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值