wkbszq257 2021-06-10 09:50 采纳率: 0%
浏览 175
已结题

要代码和思路,使用JAVA完成

. [问题描述]创建三个线程并启动,每个线程运行中每隔1秒钟更新一个共享变量var,让其加1,并打印出来。

 

[基本要求]

 

观察打印出来的顺序是不是按1递增的。如果不是,修改程序,使得打印的顺序是按1递增的。

 

[测试数据] 自定义。

  • 写回答

5条回答 默认 最新

  • CSDN专家-Fay 2021-06-10 09:54
    关注

    这里有个卖票的例子可以符合这个要求, 加上线程锁就同步了!

    //并发:两个或多个线程 同时访问一个共享资源的现象
    public class Tickets implements Runnable {
    	int count = 100;// 总票数
     
    	public void run() {
    		while (true) {
    			// 1、给程序段加上互斥锁
    			synchronized (this) {
    				if (count < 1) {
    					System.out.println("票已售罄");
    					break;
    				}
    				count--;// 余票减1
    				System.out.println(Thread.currentThread().getName()
    						+ " 卖出了一张票,还剩" + count);
    				try {
    					Thread.sleep(50);
    				} catch (InterruptedException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    	
    	
     
    	public static void main(String[] args) {
    		Tickets t = new Tickets();
     
    		Thread a = new Thread(t, "赣州站");
    		Thread b = new Thread(t, "广州站");
    		Thread c = new Thread(t, "上海站");
     
    		a.start();
    		b.start();
    		c.start();
    	}
     
    }
    评论

报告相同问题?