多线程

来源:互联网 发布:java访问权限修饰符 编辑:程序博客网 时间:2024/05/18 02:33

*http://www.cnblogs.com/GarfieldEr007/p/5746362.html

*Java实现多线程的3种方法:
1)继承Thread类
2)实现runnable接口
3)使用ExecutorService,Callable、Future实现有返回值的多线程。前2种线程的实现方式没有返回值,第三种实现方式可以获取线程执行的返回值。

*有对象锁有类锁
锁不是基于方法的
想要释放锁就要获得锁

*线程池的submit和execute方法的区别:前者执行会返回一个future对象,可以通过这个future对象获取到线程内部的内容,后者只是会执行线程,但是没有返回值。

*Java 启动线程三种方式
继承Thread,实现Runnable接口,直接在函数体使用
实现Runnable接口优势:
1)适合多个相同的程序代码的线程去处理同一个资源
2)可以避免Java中的单继承的限制
3)增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。
继承Thread类优势:
1)可以将线程类抽象出来,当需要使用抽象工厂模式设计时。
2)多线程同步(值得商榷,实现Runnable接口也可以实现多线程同步)
在函数体使用优势
1)无需继承thread或者实现Runnable,缩小作用域。
另外,实现Runnable接口的线程自身无法启动,只能通过系统线程启动,如:Thread t = new Thread(new Runnable()).start();

*多线程数据共享与不共享:http://blog.csdn.net/u011277123/article/details/68482933

0 0