线程学习总结:
- 线程是单个的执行流
- 程序一和程序二的区别在于:当程序一已经有动作时,会对用户的操作排入队列,不能同时运行两个动作,程序二则可以也就是实现了程序的并发性。
- 新建线程有两个方法:1.用接口实现。2.继承Thread类。
- 中断线程:执行完最后一条语句或者执行过程中捕获了异常,线程终止,让出cpu的使用权。
- 线程的状态有7种见P635需要注意每种状态之间的关系,当调用什么方法时可以改变线程的状态。(线程状态实现了各线程轮流使用cpu)
- getname()获得线程名字 getpriority()获得优先级
- 竞争使用cpu时线程的动态执行特征,并发性,对资源进行充分的使用。共享资源还有对内存的竞争。
- 程序分为四个模块(ball,ballcomponent,bounceframe,bounce)
从ball类(新建了一个2d椭圆形,定义了move方法)
Ballcomponent类()
Bounce程序应对用户的操作会排入队列中,事件响应完以后再响应下一个,程序串行,
BounceThread程序,以线程线索所执行,addball中事件响应动作被定义为线程,并发性
- 实现同步机制有两个方法:
1,同步代码块:
synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据
2,同步方法:
public synchronized 数据返回类型 方法名(){}
1,该类的对象可以被多个线程安全的访问。
2,每个线程调用该对象的任意方法之后,都将得到正确的结果。
3,每个线程调用该对象的任意方法之后,该对象状态依然保持合理状态。