Java多线程的一个简单示例
Java多线程简单示例
代码如下:
public class Canteen extends Thread{ //餐总数 static int rice = 20; //取餐凭证 static Object key = "KEY"; public Canteen(String name){ super(name); } @Override public void run() { //有则可以出售 while (rice > 0){ synchronized (key){ try{ if(rice > 0){ System.out.println(getName()+" 卖出一份快餐,当前剩余快餐数:"+--rice+"份"); sleep(1000); }else { System.out.println("餐已售罄!"); } } catch (InterruptedException e) { e.printStackTrace(); } } } } public static void main(String[] args) { //创建并启动 new Canteen("取餐口1").start(); new Canteen("取餐口2").start(); new Canteen("取餐口3").start(); } }
这里我们需要运用 synchronized对其中代码块加锁,促使所有线程在任何时刻只能有一个线程对该代码块进行访问,从而使示例做到线程安全。
运行结果如下:
总结
提示:这里对文章进行总结:
以上,一个简单的Java多线程示例就完成了,可以理解为多个取餐窗口同时对一个快餐资源进行操作,并且使得资源不会扣减至负数。
下一篇:
Burp插件研发避坑指南1