内部类、线程和并发的个人总结
2013-11-17 12:17
106 查看
内部类
内部类分为:普通内部类、程序块中的内部类、静态内部类、匿名内部类。
普通内部类必须在宿主构造实例时才能构造,普通内部类保有宿主的引用可以不受限制的访问宿主的任何成员。
常见用法:
1:利用内部类隐藏实现接口
当程序中某些逻辑要开发新的类来实现,而这时内部类是最方便时,使用内部类来实现逻辑。
2:方法中的内部类和匿名内部类
在程序块中也可以定义内部类,有时甚至是没有名称的内部类(匿名内部类)。
3:静态内部类(嵌套类)
无需宿主的实例即可创建,因此静态内部类不能访问宿主类的非静态成员。
线程和并发
线程使得一个程序可以处理多个请求。
常用方法:
1、实现线程的两种方法
一.继承java.lang.Thread类,重写run( )方法,在run方法中完成线程功能。
二.通过Runnable接口实现。
实现Runnable接口必须实现run方法,在run方法中完成功能处理,在创建线程时要以实现Runnable接口的实例为参数构造Thread,调用其start方法启动线程。
2、匿名内部类中的线程
可以使用匿名内部类实现线程。
如:
方法名 {
//方法体中
new Thread(){
public void run () {
//实现功能
}
} .start();
}
3、共享资源的竞争
引入synchronized 程序段来控制竞争程序段的运行
可以给程序段和方法加同步“锁”。
在java中任何对象都能作为同步锁(Object已经具有次功能)
用synchronized限定方法时,别的线程不能调用同一对象(一定是同一实例)的synchronized方法。即不能调用同一对象的synchronized方法。
4、线程间协作
线程间的协作靠wait(),notify(),synchronized方法来完成。
如:一个线程或的同步锁执行到一半时把锁让出,wait()一下,使另一个线程获得同步锁,当其执行完时notify()打醒它。
wait()和notify()会影响效率。
5、线程池 后续
内部类分为:普通内部类、程序块中的内部类、静态内部类、匿名内部类。
普通内部类必须在宿主构造实例时才能构造,普通内部类保有宿主的引用可以不受限制的访问宿主的任何成员。
常见用法:
1:利用内部类隐藏实现接口
当程序中某些逻辑要开发新的类来实现,而这时内部类是最方便时,使用内部类来实现逻辑。
2:方法中的内部类和匿名内部类
在程序块中也可以定义内部类,有时甚至是没有名称的内部类(匿名内部类)。
3:静态内部类(嵌套类)
无需宿主的实例即可创建,因此静态内部类不能访问宿主类的非静态成员。
线程和并发
线程使得一个程序可以处理多个请求。
常用方法:
1、实现线程的两种方法
一.继承java.lang.Thread类,重写run( )方法,在run方法中完成线程功能。
二.通过Runnable接口实现。
实现Runnable接口必须实现run方法,在run方法中完成功能处理,在创建线程时要以实现Runnable接口的实例为参数构造Thread,调用其start方法启动线程。
2、匿名内部类中的线程
可以使用匿名内部类实现线程。
如:
方法名 {
//方法体中
new Thread(){
public void run () {
//实现功能
}
} .start();
}
3、共享资源的竞争
引入synchronized 程序段来控制竞争程序段的运行
可以给程序段和方法加同步“锁”。
在java中任何对象都能作为同步锁(Object已经具有次功能)
用synchronized限定方法时,别的线程不能调用同一对象(一定是同一实例)的synchronized方法。即不能调用同一对象的synchronized方法。
4、线程间协作
线程间的协作靠wait(),notify(),synchronized方法来完成。
如:一个线程或的同步锁执行到一半时把锁让出,wait()一下,使另一个线程获得同步锁,当其执行完时notify()打醒它。
wait()和notify()会影响效率。
5、线程池 后续
相关文章推荐
- Java 线程并发和锁的总结
- Python中并发、进程、线程的总结
- Java并发总结(三):中断线程
- Java并发总结(四):线程的协作
- 自己总结线程并发的访问资源的解决方法
- 一次高性能并发引起的个人总结
- 个人知识点总结——Java并发
- 进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结
- 个人总结大型高并发高负载网站的系统架构
- 进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结
- 子线程如何获取和设置 或者控制窗口实时显示数据(网上的资料经个人整理拼凑总结)
- 个人知识点总结——Java并发
- 并发编程学习总结(三) : 线程的中断详解
- 并发编程学习总结(一) :java 创建线程的三种方式的优缺点和实例(转载自:http://blog.csdn.net/u011784767/article/details/51315007)
- SSH高性能并发的注意事项(个人总结)
- 子线程如何获取和设置 或者控制窗口实时显示数据(网上的资料经个人整理拼凑总结)
- 个人学习总结二多线程文件搜索(界面版)
- 并发处理方案 个人总结
- 黑马程序员:Java基础总结----线程池及java5的线程并发库
- 8.[个人]C++线程入门到进阶(8)----经典线程同步与互斥总结