还有就是java没有多继承的,只有多前猜盯实兆散现接口的
继承的关键字是:extends
接口慧和的关键字是:interface
很简单 我给你个我写的程序,你可以参考睁岩笑一下 不懂的问我。public class Shoupiao {
public static void main(String[] args) {
chushou c1=new chushou("A地火悉含车站",10)
c1.start()//调用Thread中的run方法需要用start();
chushou c2=new chushou("B地火车站",5)
c2.start()
chushou c3=new chushou("C地火车站",8)
c3.start()
try {
c1.join() //执行完 c1 c2 c3 在继续执行 目的让结束枣乱最后输出
c2.join()
c3.join()
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
System.out.println("结束")
}
}
//新建一个类
class chushou extends Thread{//用继承Thread的方法来实现多线程
String iname
public void run() {
for(int i=inumberi>0i--){
System.out.println(iname+"火车票卖出一张"+"剩余"+(i-1)+"张")
try {
Thread.sleep(100)
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
int inumber
public String getIname() {
return iname
}
public void setIname(String iname) {
this.iname = iname
}
public int getInumber() {
return inumber
}
public void setInumber(int inumber) {
this.inumber = inumber
}
public chushou(String iname, int inumber) {
this.iname = iname
this.inumber = inumber
}
}
两个线程(假设为a,b)不共享资源是由于变量是局部变量。就是线程a下有一个tickets,
线程b下也有一个tickets,
这时庆扰tickets变量为2个。
线程a访问的是a下的tickets,
而线程b访问的是b下的tickets,
所以造成坦差御了出票结果为200张。
为了避免这让岩种情况,需要在声明的时候把他设置成全局变量
也就是前面要加入static修饰
把int tickets=100
修改为public static int tickets=100
这时无论生成几个线程tickets变量只有一个所有的线程同时对他执行 *** 作。
这时就能保证出票数为100张了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)