第七章多线程

本文深入解析了多线程的概念,详细介绍了线程的生命周期,包括创建、就绪、运行、阻塞和死亡五种状态,并解释了状态间的转换原因。此外,还探讨了线程的并发执行原理,如时间片轮转,以及通过继承Thread类和实现Runnable接口创建线程的方式。最后,通过模拟银行取款场景,阐述了多线程在实际问题中的应用。
摘要由CSDN通过智能技术生成

一选择题
1—6ABCCAC
二简答题
1一个单CPU的机器如何同时执行多个线程请简述原理
答:在单CPU的计算机中,CPU同时只能执行一条指令,因此,在仅有一个CPU的计算机上不可能同时执行多个任务。而操作系统为了能提高程序的运行效率,将CPU的执行时间分成多个时间片,分配给不同的线程,当一个时间片执行完毕后,该线程就可能让出CPU使用权限交付给下一个时间片的其他线程执行。当然有可能相邻的时间片分配给同一线程。之所以表面上看是多个线程同时执行,是因为不同线程之间切换的时间非常短,也许仅仅是几毫秒,对普通人来说是难以感知的,这样就看似多个线程在同时执行了。

2调用线程对象的start()方法会执行run方法为啥不直接调用run()方法
答:线程实例调用start()方法和调用run()方法有着天壤之别,前者是调用实例方法,只有主线程执行,只有一条执行路径,后者是启动线程。

3线程的生命周期中包含几种状态请描述每种状态的特征
答: 创建状态
在程序中用构造方法创建了一个线程对象后,新的线程对象就处于创建状态,此时,它已经获取了相应的资源,但还没有处于可运行状态,这时可以通过Thread类的方法来设置线程对象的属性,如设置线程名(setName())、设置线程优先级(setPriority())等。
就绪状态
线程创建之后,就可以通过调用start()方法启动线程,即进入就绪状态。此时,线程将进入线程队列排队,等待CPU资源,这表明它已经具备了运行条件,在未获得CPU资源时,仍不能真正执行。举例来说,去医

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值