201711671235学习《java程序设计》第十二周学习总结

教材学习内容总结

1.进程与线程

 进程(程序一次动态执行过程)
区别与联系 线程(更小的执行单位)
 共享操作系统的资源共享进程中的某些内存单元(代码和数据)
  更节省系统开销

2.java具有多线程机制,一次执行一个线程,JVM让线程轮流执行,每个线程都有机会使用CPU资源。

2.1线程状态与生命周期

新建

Tread子类 对象;对象=new 对象();->新建状态

Tread 对象;对象=new 对象();->新建状态
 优点:可以在子类中增加新的成员变量,新的方法。但不能扩展其他类(java不支持多继承)

构造方法:Tread(Runnable target(接口)

更灵活

运行

对象.start()->JVM知道有一个新建线程在排队、

Tread子类 对象;对象.start()->调用run(){}

run()方法结束前不能调用start()方法,否则异常

a.线程让出CPU使用权

b.线程使用CPU期间,执行了sleep(int millsecond)->休眠

millsecond秒之后->重新排队

c.线程使用CPU期间,执行了wait()->等待

调用notify()->重新排队

d.操作阻塞

a.执行完run()

b.强制run()终止

中断
死亡

注:在不同计算机运行或在同一台计算机反复运行的结果不尽相同,输出结果依赖当前CPU资源的使用情况。

2.2java线程优先级1-10之间,默认为5,调整优先级setPriority(int grade)

2.3目标对象与线程关系

完全解耦弱解耦
创建目标对象的类不包括线程对象的引用目标对象组合线程,即线程作为自己的成员

2.4线程的常用方法

start()启动线程:新建->排队,之后不再调用start()方法 
run()Tread类run()功能和作用相同

 

Runnable接口

sleep(int millsecond)自动放弃CPU进入睡眠try catch()语句块中调用
isALive()

线程处于新建->返回ture

线程进入死亡->返回false

 
currentThread()Tread类中的类方法返回当前正在使用CPU资源的线程
interrupt()“吵醒”休眠的线程 

注:一个已运行的线程没有进入死亡状态,不要再给线程分配实体

2.5线程同步

线程同步:若干个线程需要使用同一个sychronized(同步)修饰方法,机制:当A使用sychronized方法时,其他线程想使用这个方法就必须等待,直到线程A使用完该方法。

2.6协调同步线程

 线程1线程2
 使用同步方法用到变量2 
被所有类继承且不予许重写wait():用在while(等待条件){}中使用CPU,出现变量2

全部:notifyAll()->结束等待,原则:先中断先继续

某个:notify()

 

2.7线程联合

线程A占有CPU,B.join():线程A在运行期间联合线程B

A中断->B执行->B执行完毕->A排队等待CPU

2.8GUI线程

AWT-EventQuecueAWT-Windows
GUI事件将窗口或组件绘制到桌面

2.9计时器线程

TImer(int a,Qbject b)->创建计时器

自动生成计时器的监视器

a:每隔a毫秒震铃一次

b:计时器的监视器

actionPerformed(ActionEvent e)执行一次震铃每隔a毫秒发生一次
setReapeats(Boolean b) ->b为false只震铃一次
setInitialDelay(int depay)设置首次震铃的延时

start()->启动线程(启动计时器)

stop()->挂起线程(停止计时)

restart()->恢复线程(重新启动计时器)

 

2.10守护线程:不是很严格的工作

默认:非守护线程,也称用户线程

将自己设置成一个守护线程:void setDaemon(Boolean on)

一个线程必须在运行之前设置自己是否是守护线程。

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行20篇400小时会用java语言独立设计程序
第一周13/131/1 5/5学会使用jdk以及对java源程序语句的基本注意事项有所了解
第二周140/143 1/210/15学会java基本数据类型与数组和c语言/c++在表达和用法上的相同/不同之处
第三周276/4191/320/35java中运算符,表达式和语句的表现形式,类的声明,定义方法
第四周600/10191/430/45类和对象
第五周

150/1169

1/510/55继承的作用,子类和父类的继承性,子类继承父类后方法的访问权限以及各种操作
第六周100/12691/68/63接口定义、使用方法和作用
第七周100/13691/79/72内部类(独有)包含匿名类和异常类(检测)的使用方法和作用
第八周150/18691/810/82java常用实用类和方法
第九周100/19691/920/102组件、容器、窗口、(如何处理事件:事件源,监视器、接口)
第十周80/20491/1010/112输入输出流和各种流的作用、构造方法
第十一周92/21411/117/119连接数据库步骤、查询、更新、添加、删除语句
第十二周104/22451/1215/134多线程的运行顺序和特点

参考文献

《java2实用教程(第5版)》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值