20165208 2017-2018-2 《Java程序设计》第八周学习总结
20165208 2017-2018-2 《Java程序设计》第八周学习总结
教材学习内容总结
第十二章
线程状态
- 创建线程对象
- 利用Thread类或子类直接创建:
Thread(Runnable target)
创建线程,获取当前线程对象,getName()
返回线程的名称。 - 使用Runnable接口:相较于Thread更灵活
- 运行
run()
方法规定具体使命 - 中断
- 死亡
线程的常用方法
start()
:启动线程,只有新建的线程才可以调用run()
:定义线程对象被调度后所执行的操作,是系统自动调用而用户不得引用的方法,需创建Thread类的子类重写覆盖原来的方法。sleep(int millsecond)
:使优先级高的自动放弃cpu资源isAlive()
:新建及死亡状态返回false,run()开始运行到结束之前调用返回truecurrentThread()
:返回正在使用cpu的线程interrupt()
:重启动休眠的线程
线程同步
synchronized
修饰方法,则调用时须遵守同步机制
线程联合
join().B
使A联合B,即A线程中断执行直至B完成
GUI线程
GUI:图形用户界面
主要涉及AWT-EventQuecue(负责处理GUI事件)和AWT-Windows(负责将窗体或组件绘制到桌面)
计时器线程
Timer(int a,Object b)
创建计时器,Timer类的start()
启动线程,stop()
停止,restart()
重启恢复线程
教材学习中的问题和解决过程
问题一:p366提到在创建线程时,Runnable类比Thread子类更具有灵活性,但是不是很懂Runnable类要怎么用。
解决方法一:通过上网查阅资料学习,了解到实现Runnable接口的类必须使用Thread类的实例才能创建线程。通过Runnable接口创建线程分为两步:
- 将实现Runnable接口的类实例化。
- 建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法。
代码托管
上周考试错题总结
- 下面的选项不是关系数据库基本特征的是
A.不同的列应有不同的数据类型
B.不同的列应有不同的列名
C.与行的次序无关
D.与列的次序无关
正确答案为A,该项不属于关系数据库的基本特征 - 下列属于数据操作语言的是
A.insert
B.update
C.create
D.select
此题为多选,除了update外,insert也属于数据操作语言
其他(感悟、思考等,可选)
这一章主要学习了线程,多线程作为Java的特点之一,但是并不是指多个事件被同时处理,而本章的知识也更贴近具体问题,可以用来更好的表达及解决实际问题。
参考资料
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 36/36 | 4/4 | 30/30 | |
第二周 | 464/500 | 1/5 | 18/48 | |
第三周 | 832/1332 | 2/7 | 17/65 | |
第四周 | 939/2271 | 2/9 | 17/65 | |
第五周 | 1163/3434 | 1/10 | 17/65 | |
第六周 | 1176/4610 | 1/11 | 15/65 | |
第七周 | 864/5474 | 2/12 | 15/80 | |
第八周 | 703/6177 | 2/14 | 15/80 |