办公室中只有一台打印机,员工李强、王晓及陈明的电脑均连接在这台打印机上,请使用Java语言编写多线程程序,模拟三位员工使用打印机的情况。
//定义员工线程,其中关键字synchronized 是锁,同一时间,只能有一个线程访问打印机
public class MyThread extends Thread {
private int count=5;
@Override
synchronized public void run()
{
super.run();
count--;
//此示例不要用for语句,因为使用同步后其他线程就得不到运行的机会了,
//一直由一个线程进行减法运算
System.out.println("count="+count);
}
}
//启动线程,
public class Test {
public static void main(String[] args)
{
MyThread mythread=new MyThread();
Thread a=new Thread(mythread,"A");
Thread b=new Thread(mythread,"B");
Thread c=new Thread(mythread,"C");
a.start();
b.start();
c.start();
}
}
这个三个线程同时运行,打印的结果都不相同。
如果不加synchronized ,那么打印的结果可能有相同值。