黑马程序员_多线程
来源:互联网 发布:波兰黄金列车 知乎 编辑:程序博客网 时间:2024/05/20 18:16
javaEE+android培训
多线程
创建线程的一种方法:
1.定义类继承Thread
2.覆写Thread类中的run方法
目的:将自定义打你吗存储在run方法中,让线程运行
3.调用线程的start方法
作用:启动线程,调用run方法
4.线程的5中状态,见图
5.Thread中几个方法:
static Thread currentThread();获取当前线程对象
getName();获取线程名称
设置线程名称:serName或者构造函数
创建线程的第二种方法:
1.定义类实现Runnable接口
2.覆盖Runable接口中的run方法
将线程要运行的代码存放在该run方法中
3.通过Thread类建立Thread类对象
4。将Runnable接口的子类对象作为实际参数传给Thread类的构造参数
原因:自定义的run方法所属的对象是Runnable接口的子类对象,所以要让线程去指定对象的run方法,就必须明确该run方法所属对象
5.调用Thread类的start方法开启线程并调用Runnable接口子类的run方法
两者的区别
Runanble好处:避免了单继承的局限性(在建立时建议用Runnable实现)
继承Thread:线程代码存放在Thread子类run方法中
实现Runnable:线程代码存放在接口的子类run方法中
静态同步的方法:使用的所示该方法所在类的字节码文件对象
wait(),notify(),notifyAll()都使用在同步中,因为要对持有监视器(锁)的线程操作,所以要使用在同步中,因为只有同步才具有锁
这些操作线程的方法要定义在Object中:因为这些方法在操作同步中线程是,都必须要标识他们所操作线程只有的锁,不可以对不同锁中的线程进行唤醒
在线程中为了能够唤醒对方线程而不唤醒本方线程引入了新的特性:
将同步Synchronized替换成lock操作,(因为lock上支持多个对象)
将object中的wait,notify,notifyAll,替换成了Condition对象
该对象可以Lock锁,进行获取
线程停止的方法:
控制住循环,让run方法结束,也就是线程结束
特殊情况:
当线程处于了冻结状态,就不会读取到标记,那么线程就不会结束,这时需要对冻结进行清除,强制线程恢复到运行状态中来,这样就可一操作标记让线程结束
join:
join可以用来临时加入线程执行
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- android短信发送
- iOS开发利器DCIntrospect
- 软工总结
- ubuntu下配置静态IP地址,设置DNS和主机名
- Erlang ets表
- 黑马程序员_多线程
- 嵌入式 shell相关经典解释如变量以及赋值和特殊符号
- mysql 允许远程登陆
- 网络视频监控P2P解决方案
- Core Data(1)
- java语言基础
- Linux下检测网卡与网线连接状态,使用ioctl向socket发送SIOCETHTOOL命令字
- DataGridView
- oracle数据库中的大对象