Java多线程编程学习

1 线程的概念

        多线程是指同一个程序同时存在多个“执行体”,它们可以同时工作

        1.1 进程的概念

        一次程序的每一次运行都叫做进程(一个进程可以包含多个线程

        1.2 线程的概念

        多线程是指一个程序中多段代码同时并发进行

        1.3 主线程的概念

        JavaMain中的线程就叫做主线程

        在Main中执行再创建的线程叫做其他线程

        运行结果:

2 Thread类与Runnable接口

        再说Thread类之前,我们可以想一想,有没有一种办法能够让三个线程同时进行呢

        第一种方法  继承Thread类

        这个子类应该重写Thread类中的run()方法,子类的对象需要调用start()来启动

         练习:创建2个线程,一个线程负责输出英文字母表,另一个线程负责输出希腊字母表。通过继承Thread类实现创建线程。

        第二种方法  实现Runnable接口

        通常使用Thread(Runnable target)构造方法创建线程,实现Runnable接口的类可以用来创建线程

         练习:创建2个线程,一个线程负责输出英文字母表,另一个线程负责输出希腊字母表。通过实现Runnable接口创建线程。

3 线程的生命周期

        3.1 线程的生命周期

        线程的生命周期是指线程从产生到消亡的过程,一个线程无论在任何时间都处于某种线程状态

        练习     创建3个线程:老师,李四,王五,其中李四准备睡10分钟后再开始听课,王五准备睡45分钟再开始听课。老师在输出3句“上课”后,吵醒休眠的线程李四,李四被吵醒后,负责再吵醒休眠的线程王五。

        3.2 线程同步

        线程同步就是多线程都需要使用一个synchronized修饰的方法,多个进程同时访问一个变量,并且多个进程要修改这个变量的问题,要进行线程同步处理。

         练习     每学期开学,教材科需要购入和出售教材。创建2个线程,一个线程负责购入教材,另一个线程负责向学生出售教材。两个线程都要操作教材科的教材种类及册数数据。     要求通过线程同步,保证一个线程操作完之后,另一个线程再执行。

        3.3 协调同步线程

        wait()方法中断方法的执行,让本线程等待,允许其他线程使用这个同步方法。

        notifyAll()通知所有的由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从刚才的中断处继续执行这个同步方法,并遵循“先中断先继续”的原则。

        notify()方法只是通知处于等待中的线程的某一个结束等待。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值