黑马程序员 多线程 2
2015-07-11 14:09
344 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
1、线程间通讯
其实就是多个线程在操作同一个资源,
但是操作的动作不同。
2、wait();//在线程池中等待
notify();//唤醒线程池中第一个等待的线程
notifyAll()
都是用在同步中,因为要对持有监视器(锁)的线程操作,
所以要使用在同步中,因为只有同步才具有锁。
为什么这些操作线程的方法要定义object类中呢?
因为这些方法在操作同步中线程时,都必须标识它们所操作线程只有的锁
只有同一个锁上的被等待线程,可以被同一个锁上notify唤醒
不可以对不同锁中的线程进行唤醒
也就说,等待和唤醒必须是同一个锁。
而锁可以是任意对象,所以可以被任意对象调用的方法定义在object类中。
3、停止线程
如何停止线程?
只是一种,run方法结束。
开启多线程运行,运行代码通常是循环结构。
只要控制住循环,就可以让run方法结束,也就是线程结束。
特殊情况:
当线程处于了冻结状态
就不会读取到标记。那么线程就不会结束。
4、t1.join()//占据主线程,等本线程完成后,主线程再运行
1、线程间通讯
其实就是多个线程在操作同一个资源,
但是操作的动作不同。
2、wait();//在线程池中等待
notify();//唤醒线程池中第一个等待的线程
notifyAll()
都是用在同步中,因为要对持有监视器(锁)的线程操作,
所以要使用在同步中,因为只有同步才具有锁。
为什么这些操作线程的方法要定义object类中呢?
因为这些方法在操作同步中线程时,都必须标识它们所操作线程只有的锁
只有同一个锁上的被等待线程,可以被同一个锁上notify唤醒
不可以对不同锁中的线程进行唤醒
也就说,等待和唤醒必须是同一个锁。
而锁可以是任意对象,所以可以被任意对象调用的方法定义在object类中。
3、停止线程
如何停止线程?
只是一种,run方法结束。
开启多线程运行,运行代码通常是循环结构。
只要控制住循环,就可以让run方法结束,也就是线程结束。
特殊情况:
当线程处于了冻结状态
就不会读取到标记。那么线程就不会结束。
4、t1.join()//占据主线程,等本线程完成后,主线程再运行
相关文章推荐
- 程序员一路上相伴的朋友
- Java面试题全集(下)
- Java面试题全集(中)
- Java面试题全集(上)
- java web程序员成长之路
- 数据库基础面试
- 数据库基础面试
- 黑马程序员——OC基础---内存管理(引用计数器,多对象内存管理,set方法的内存管理,模型设计,循环引用)
- 黑马程序员——Java 多线程
- 黑马程序员-IOS学习笔记 结构体的嵌套demo
- 黑马程序员--关于控件平移缩放旋转的总结
- 黑马程序员-IOS学习笔记 c实现 推箱子游戏
- 黑马程序员-IOS学习笔记 用指针逆序一个数组
- 黑马程序员-IOS学习笔记 折半查找 在数组中插入一个数返回index
- 黑马程序员-IOS学习笔记 99乘法表 打印
- 黑马程序员-IOS学习笔记 用位远算来判断一个数是奇数还是偶数
- 黑马程序员-IOS学习笔记 交换2个数的值
- php常见的面试题目
- 多线程面试题
- 笔试题&面试题:CW输出矩阵