码迷,mamicode.com
首页 > 编程语言 > 详细

java 面向对象编程--第十四章 多线程编程

时间:2016-05-02 23:04:00      阅读:435      评论:0      收藏:0      [点我收藏+]

标签:

1、  多任务处理有两种类型:基于进程和基于线程。

2、  进程是指一种“自包容”的运行程序,由操作系统直接管理,直接运行,有自己的地址空间,每个进程一开启都会消耗内存。

3、  线程是进程内部单一的顺序控制流。一个进程拥有多个线程。多个线程共享一个进程的内存空间。

4、  基于进程的特点是允许计算机同时运行两个或更多的程序。

5、  基于线程的多任务处理环境中,线程是最小的处理单位。

6、  基于进程所需的开销更少:每个进程都需要操作系统为其分配独立的内存空间;同意进程中的所有线程都在同意内存空间中工作,这些线程可以共享同一块内存和系统资源。

7、  主线程:main方法一运行,就开启主线程。

8、  主线程特点:最先开始、最后结束、产生其他的子线程、回收资源

9、  创建线程的两种方式:声明一个Thread类的子类,并覆盖run()方法;声明一个Runnable接口的类,并实现run()方法。

10、              在线程类中,调用start()方法和run()方法的区别:如果直接调用run()方法,是普通方法调用,不会在主线程基础上,开启子线程是单线程;调用start()方法,会在主线程基础上开启子线程,是多线程。

11、              线程有八种状态:

新建:new的方式产生一个线程对象。

就绪:start启动运行run()方法。

运行:执行run()方法。

死亡:线程run()方法执行完毕。

等待:Object里的wait()方法。

睡眠:调用线程sleep()方法。

挂起:yield()方法,线程显式出让CPU控制权。

阻塞:等待IO事件输入。

12、              线程优先级:当两个或多个线程,同时处于就绪状态,等待CPU执行,优先级高的线程优先得到执行。优先级分为1-10级,数字越大,优先级越高。

13、              线程同步(线程安全)当两个或两个以上的进程同时操作同一个资源时,在同一时间只允许一个线程进行访问,别的线程等待。

14、              关键字synchronized 同步,可以作为方法的修饰符,表示当一个线程正在访问资源时,其它进程只能等待。当该线程结束对该资源的访问时,才允许别的线程访问。

15、              同步造成的结果:数据安全、效率低下。

16、              同步有两种方式:同步方法、同步块。

同步方法:public synchronized void test(){}

同步块:public void run(){

                            synchronized(ob){}

                   }

17、              wait()和sleep()方法的区别:

  • wait方法在Object类中定义,sleep方法在线程类Thread中定义;
  • wait方法只能放在同步方法或同步块中,表示当前线程对资源进行等待,sleep方法可以放在任何位置,表示当前线程休眠;
  • wait方法要释放对象锁,sleep方法不会释放对象锁;
  • wait方法使用后,线程需要notify唤醒后才能继续执行,而sleep在休眠结束后,线程自动继续执行。

18、              线程之间通过wait(),notify(),notifyAll()方法通信。

19、              两个线程在两个同步对象上循环依赖时,发生死循环。

java 面向对象编程--第十四章 多线程编程

标签:

原文地址:http://www.cnblogs.com/littlejava/p/5453330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!