A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 梦想加油站0321 中级黑马   /  2017-3-31 00:21  /  756 人查看  /  0 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

线程:

1.线程的概念

*程序里面不同的执行路径,每一个执行路径称为一个线程

*对于单cpu来讲,某一具体的时刻,只会有一个线程在运行,但是CPU的速度非常快,表面上看起来是许多个线程并行执行

2.java中线程的创建与启动

*两种实现线程的方式:继承Thread,实现Runnable接口

*线程的启动:start.启动线程,运行线程的run方法,run方法运行完线程就结束(注意,start只在Thread里面有,start不同于run)

*注意一个Thread对象,只能一次调用start方法

*Thread与Runnable的区别:1:Runnable是接口,比Thread灵活(因为java只能单继承,可以同时实现许多接口);2.一个Runnable对象可以启动许多个线程,线程之间共享对象(Thread不能共享对象)

3.线程的状态:new ,可运行,运行中,阻塞,死亡

4.线程的调度

*Thread.sleep,使该线程睡眠

*join:线程合并(结果类似与方法调用)

*yield:线程让出当前CPU,留给其他线程运行

*线程优先级:setPriority设置线程优先级

*后台线程:setDaemon,必须在线程运行前设置为后台线程.当所有的前台线程都结束了,后台线程自动结束

*线程可以指定名字,取得当前线程的方法Thread.currentThread();

5.线程同步

*synchronized:同一时刻,只会有一个线程执行synchronized代码块

6.线程间通讯

*wait(),notify(),notifyAll是Object类中定义的方法

*wait():使得运行该代码的线程进入对象的等待池进行等待,线程进入阻塞状态,wait的线程一直阻塞,指导其他线程调用该对象的notify方法唤醒它。

*notify():唤醒对象等待池中的一个线程,使得被唤醒的线程进入可运行状态,如果等待池中没有线程,notify什么也不做。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马