Java多线程相关知识
来源:互联网 发布:索尼高清网络摄像机 编辑:程序博客网 时间:2024/05/05 05:16
1)wait() notify() sleep()
sleep是Thread类的函数,wait和notify是Object的函数。
sleep的时候keep对象锁,wait的时候release 对象锁。
sleep时监控状态依然保持。wait进入等待池,只有针对该对象发出了notify才会进入对象锁池。
Sleep时间过了就会恢复运行,wait后等到notify了,也不一定是立即运行。
Wait和notify是非static函数,sleep是Thread类的static函数。
2)stop() destroy() suspend()
都是Thread类的函数,都不推荐使用。
stop放弃了所有的lock,会使得对象处于一种不连贯状态。
destroy的时候如果还keep了某些资源的lock,那就死定了
suspend会继续持有所有的lock,容易发生死锁。
3)创建线程:
继承Thread类,override它的abstract函数run
实现Runnable接口,写run函数。
4)让线程跑起来:
start()函数
5)例子:四个线程,两个inc,两个dec,没有顺序:
public class ThreadTest {
private int j;
public static void main(String[] args) {
ThreadTest tt=new ThreadTest();
Inc inc= tt.new Inc();
Dec dec= tt.new Dec();
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
}
}
private synchronized void inc(){
j++;
System.out.println(Thread.currentThread().getName()
+"-inc:"+j);
}
private synchronized void dec(){
j--;
System.out.println(Thread.currentThread().getName()
+"-dec:"+j);
}
class Inc implements Runnable{
public void run() {
for(int i=0;i<100;i++){
inc();
}
}
}
class Dec implements Runnable{
public void run() {
for(int i=0;i<100;i++){
dec();
}
}
}
}
- Java多线程相关知识
- Java多线程相关知识
- Java多线程相关知识
- java 多线程相关知识
- java学习--多线程相关知识
- Java多线程相关知识记录
- 多线程 相关知识
- 多线程相关知识
- 多线程相关知识
- IOS多线程相关知识
- 多线程相关知识
- 多线程相关知识
- 多线程相关知识
- 多线程相关知识梳理
- 多线程相关知识
- Java 多线程相关知识 《java core 1》读书笔记
- linux多线程编程相关知识
- Java【多线程知识总结】
- assert用法总结
- jQuery选择器方法总结
- 在 qt pro文件中区分不同的qt版本
- C语言(贪心法)
- 高性能I/O设计模式Reactor和Proactor
- Java多线程相关知识
- 重新认识FontMetrics、Canvas.drawText
- Chrome 如何查看修改Cookie
- Synctoy定时自动同步数据
- java的文件上传
- SQL2005设置外网不给链接的设置问题
- Java中抽象类和接口的区别
- ArcGIS无法嵌入互操作类型解决办法例:
- mvn 创建web项目