关于一个线程的问题

黑煤碳 2017-05-18 09:22:47
代码:
public class Zst{
public static void main(String[] args){
Sc a=new Sc();
XiaoShou aa=new XiaoShou(a);
ShenChan bb=new ShenChan(a);

Thread a1=new Thread(aa);
a1.start();
Thread b1=new Thread(bb);
b1.start();
}
}

public class XiaoShou implements Runnable{
private Sc a=null;
public XiaoShou(Sc a){
this.a=a;
}
public void run(){
for(int i=0;i<26;i++){
a.ChuShou();
}
}
}

public class ShenChan implements Runnable{
private Sc a=null;
public ShenChan(Sc a){
this.a=a;
}
public void run(){
char aa;
for(int i=0;i<26;i++){
aa=(char)('A'+i);
a.ShengChan(aa);
}
}
}

public class Sc{
private char[] rl=new char[8];
private int wp=0;
public synchronized void ShengChan(char aa){
while(wp==rl.length){
try{
this.wait();
}
catch(Exception e){

}
}
this.notify();
rl[wp]=aa; ++wp;
System.out.println("生产了第"+wp+"个物品\t物品名是"+aa);
}
public synchronized void ChuShou(){
char aa;
while(wp==0){
try{
this.wait();
}
catch(Exception e){}
}
this.notify();
aa=rl[wp-1];
System.out.println("出售了第"+wp+"个物品\t物品名是"+aa);
--wp;
}
}


问题:线程不会出现那种抢资源的效果
...全文
350 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
santan 2017-06-04
  • 打赏
  • 举报
回复
synchronized
什么都不能 2017-06-04
  • 打赏
  • 举报
回复
同步描述符方法会次序执行。
黑煤碳 2017-06-02
  • 打赏
  • 举报
回复
求解啊!!!!!!!!!!!!!!!!
逗比123号 2017-06-02
  • 打赏
  • 举报
回复
加个sleep

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧