java中使用static和runnable来实现资源的共享有什么区别
比如我要实现一个火车票的发售系统,代码如下:lass Tickets implements Runnable //extends Thread
{
private int ticket = 10;
//private static int ticket = 10;
public void run(){
while(ticket>0){
System.out.println(Thread.currentThread().getName()+"卖"+ticket--+"号票");
}
}
}
public class Test
{
public static void main(String []args){
Tickets tt = new Tickets();
/* Tickets t1 = new Tickets();
Tickets t2 = new Tickets();
Tickets t3 = new Tickets();
Tickets t4 = new Tickets(); */
Thread t1 = new Thread(tt);
Thread t2 = new Thread(tt);
Thread t3 = new Thread(tt);
Thread t4 = new Thread(tt);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
请问一下我用static和Runnable两种方法实现资源的共享有什么区别? --------------------编程问答-------------------- 1、Runnable适合于多个相同程序代码线程去处理统一资源的情况,把虚拟的cpu(线程)同程序的代码,数据有效分离,较好体现面向对象的编程的思想
2、Runnable可以避免由于java的单继承机制带来的局限。可以再继承其他类的同时,还能实现多线程的功能。
3、Runnable能增加程序的健壮性。代码能够被多个线程共享。 --------------------编程问答-------------------- 可以把Runnable对象理解为线程的运行内容,不过和static有什么可比性呢,不同类的东西。
补充:Java , Java SE