多线程
来源:互联网 发布:浅谈软件测试技术 编辑:程序博客网 时间:2024/06/05 12:40
现在我们来看看多线程的问题,先看下下面的代码
这是两个线程分别执行两个run方法
public class Test8 {
public static void main(String[]args) {
new Thread(new in(new Resource2())).start();
new Thread(new out(new Resource2())).start();
}
}
class inimplements Runnable{
Resource2 r;
in(Resource2 r){
this.r=r;
}
public void run(){
while(true){
r.set();
}
}
}
class outimplements Runnable{
Resource2 r;
out(Resource2 r){
this.r=r;
}
public void run(){
r.get();
}
}
class Resource2 {
private Stringname;
private int count=1;
boolean flag=false;
public synchronized void set() {
while(flag){
try {
this.wait();
} catch (InterruptedExceptione) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+"----"+count++);
flag=true;
notify();
}
public synchronized void get() {
while(!flag){
try {
this.wait();
} catch (InterruptedExceptione) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+"---"+(--count));
flag=true;
notify();
}
}
结果是只有一个线程执行了一次,结果如下:
Thread-0----1
原因是什么呢?
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- Win10下安装tensorflow (Python3.5)
- 从0开始学git 第5节:开始我们的第一个GIT PROJECT
- 导入Maven遇到的错误
- java---数组复制
- 导数,偏导,方向倒数,梯度
- 多线程
- IP多播
- Linux 安装SVN服务器配置
- 【Unity】Unity中的异步编程技术详解
- 剑指offer 二叉树重建
- 谈谈Webview优化
- 计数器参数详解
- CentOS VMware Tools 安装手册
- suse Linux下安装SVN客户端