初识线程之线程的创建

本文介绍了Java线程的基础知识,包括线程的五种状态:新生、就绪、运行、阻塞和死亡,以及线程生命周期的概念。此外,还详细讲解了创建线程的两种方式:继承Thread类和实现Runnable接口。

今天刚学了线程,作为一个刚刚java摸到门槛的菜鸟,写写博客,将每天所学的东西都记录下来。

以下是我个人学了线程的一点心得,不对之处,还请指教。

在java中,线程是用Thread类及其子类的对象来表示,Thread类是抽象类,所以要创建一个新的线程,需要用Thread的对象去指向子类,也就是多态,所以也就需要子类去重写父类Thread中的run()方法。每个线程都要经历新生、就绪、运行、阻塞和死亡5种状态,线程从新生到死亡的状态变化过程称为线程的生命周期。

1.新生状态

用new运算符和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态,处于新生状态的线程邮资机的内存空间,用过调用start()方法进入就绪状态。

2.就绪状态

处于就绪状态的线程已经具备了运行条件,但是还没有分配到CPU,因而进入线程就绪队列,等待系统为其分配CPU。一旦获得CPU,线程就进入运行状态,并自动调用自己的run()方法。

3.运行状态

处于运行状态的线程执行自己的run()方法中的代码,直到调用其它方法而终止,或等待某资源而阻塞,或完成任务而死亡。

4.阻塞状态

处于运行状态的线程在某些状态下,如执行了sleep()方法,或等待I/O设备等资源,让出CPU并暂时终止自己的运行,进入阻塞状态。

5.死亡状态

死亡状态时线程生命周期中的最后一个阶段。线程死亡的原因有两个:一个是正常运行的线程完成了它的全部工作;另一个是线程被强行终止运行,如通过stop()或destroy()方法来终止一个线程。

创建线程

在java中创建线程的方式有两种:一种是通过创建Thread类的子类来实现,另一种是通过实现Runnable接口的类来实现。

1.通过Thread类创建线程

通过继承Thread类实现多线程的方式是设计Thread类的子类,然后根据工作需要重新设计线程的run()方法,在使用start()方法启动线程,将执行权交给run()方法。

2.通过Runnable接口实现线程

通过Runnable接口实现线程时,要设计一个实现Runnable接口的类,然后根据工作需要,重新设计线程的run()方法;在建立该类的对象,以此对象为参数建立Thread类的对象,调用Thread类对象的start()方法启动线程,将执行权交给run()方法。

本系统旨在构建一套面向高等院校的综合性教务管理平台,涵盖学生、教师及教务处三个核心角色的业务需求。系统设计着重于实现教学流程的规范化与数据处理的自动化,以提升日常教学管理工作的效率与准确性。 在面向学生的功能模块中,系统提供了课程选修服务,学生可依据培养方案选择相应课程,并生成个人专属的课表。成绩查询功能支持学生查阅个人各科目成绩,同时系统可自动计算并展示该课程的全班最高分、平均分、最低分以及学生在班级内的成绩排名。 教师端功能主要围绕课程与成绩管理展开。教师可发起课程设置申请,提交包括课程编码、课程名称、学分学时、课程概述在内的新课程信息,亦可对已开设课程的信息进行更新或撤销。在课程管理方面,教师具备录入所授课程期末考试成绩的权限,并可导出选修该课程的学生名单。 教务处作为管理中枢,拥有课程审批与教学统筹两大核心职能。课程设置审批模块负责处理教师提交的课程申请,管理员可根据教学计划与资源情况进行审核批复。教学安排模块则负责全局管控,包括管理所有学生的选课最终结果、生成包含学号、姓名、课程及成绩的正式成绩单,并能基于选课与成绩数据,统计各门课程的实际选课人数、最高分、最低分、平均分以及成绩合格的学生数量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值