`

独木桥问题多线程--java编程

    博客分类:
  • JAVA
 
阅读更多

public class Pedestrian implements Runnable{  static int an,bn;  static int count;
 boolean as=false,bs=false;
 public static void main(String [] args) {   Pedestrian p=new Pedestrian();  }
 public Pedestrian() {
  Scanner inputa=new Scanner(System.in);
  System.out.println("请输入在a方向的行人数目:");   an=inputa.nextInt();
  Scanner inputb=new Scanner(System.in);
  System.out.println("请输入在b方向的行人数目:");   bn=inputb.nextInt();   count=an+bn;
  while(count>0) {
    thread1 a=new thread1(this,"a");           a.start(); 
          thread1 b=new thread1(this,"b");           b.start();       }     }
 class thread1 extends Thread {
  public thread1(Runnable r, String name) {    super(r, name);     }    }
 public synchronized void run(){
  thread1 t=(thread1)Thread.currentThread();   if (t.getName().equalsIgnoreCase("a") && an>0 && bs==false) {
   as=true;
   int i=(int)(Math.random()*100%an);    if(i<an) i=i+1;    an=an-i;
   System.out.println("a方向上有"+i+"人过桥!"+" 还剩人数为:"+an);
   int n;
   n=(int)(Math.random()*2);
   System.out.println("a方向上新增人数:"+n+"    现要过桥人数为:"+(an+n));    an=an+n;    if(an==0) {
    System.out.println("a方向上的人已全过桥!");


  
 


   }
   as=false;             }   if (t.getName().equalsIgnoreCase("b") && bn>0 && as==false) {
   bs=true;
   int j=(int)(Math.random()*100%bn);    if(j<bn) j=j+1;    bn=bn-j;
   System.out.println("b方向上有"+j+"人过桥!"+"还剩人数为:"+bn);
   int m;
   m=(int)(Math.random()*2);
   System.out.println("b方向上新增人数:"+m+"    现要过桥人数为:"+(bn+m));    bn=bn+m;    if(bn==0) {
    System.out.println("b方向上的已全过桥!");    }
   bs=false;    }
  count=an+bn;  } }

 
 
分享到:
评论

相关推荐

    Java多线程-Socket编程

    Java 多线程-Socket 编程 Java 多线程-Socket 编程是指在 Java 语言中使用多线程技术来实现网络编程,特别是使用 Socket 编程来实现客户端和服务器端的通信。在 Java 中,多线程可以使用 Thread 类和 Runnable 接口...

    java多线程同步问题

    多线程注意:wait()方法的调用要有判定条件常用 while () obj.wait(timeout, nanos); ... // Perform action appropriate to condition } synchronized会影响共享数据,但对其他语句的执行不会有规律了!

    基于java的开发源码-超简单Java多线程填表源码.zip

    基于java的开发源码-超简单Java多线程填表源码.zip 基于java的开发源码-超简单Java多线程填表源码.zip 基于java的开发源码-超简单Java多线程填表源码.zip 基于java的开发源码-超简单Java多线程填表源码.zip 基于java...

    JAVA线程高级-线程按序交替执行

    在Java编程中,多线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而提高了系统的效率和响应性。然而,在某些场景下,我们可能需要控制线程的执行顺序,确保它们按照特定的顺序交替运行,这在并发编程...

    linux实用脚本show-busy-java-threads

    总之,"linux实用脚本show-busy-java-threads"、"show-duplicate-java-classes"以及"find-in-jars"是Java开发者和系统管理员在Linux环境下不可或缺的工具,它们能够有效地帮助我们诊断和优化Java应用程序,提升系统...

    Java多线程编程总结

    Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-...

    多线程-day02.docx

    【多线程编程详解】 在Java编程中,多线程技术是实现并发处理和提高系统效率的关键。在“多线程-day02”的学习资源中,我们深入探讨了Java内存模型以及多线程的特性与控制机制。 **Java内存模型** Java内存模型,...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    Java多线程编程实战指南-核心篇

    《Java多线程编程实战指南-核心篇》是一本深入探讨Java并发编程的书籍,旨在帮助读者掌握在Java环境中创建、管理和同步线程的核心技术。Java的多线程能力是其强大之处,使得开发者能够在同一时间执行多个任务,提高...

    Java多线程-知识点梳理和总结-超详细-面试知识点.docx

    Thread安全是Java多线程编程中的一种设计理念,用于确保多个线程可以安全地共享数据和资源。Thread安全可以通过使用线程同步机制、线程安全的数据结构和ThreadLocal变量等方式来实现。 CAS操作 CAS(Compare And ...

    精灵线程(Daemon)或守护线程---马克-to-win java视频

    精灵线程(Daemon)或守护线程---马克-to-win java视频

    4JAVA编程高级-多线程编程

    ### JAVA编程高级-多线程编程 ...总之,Java中的多线程编程是一个非常重要的主题,对于提高程序的性能和响应速度有着不可替代的作用。掌握好Java中的多线程机制,可以帮助开发者更好地设计和实现高效的应用程序。

    Java 第二阶段提升编程能力【线程(基础)】---- 代码

    Java 第二阶段提升编程能力【线程(基础)】---- 代码 Java 第二阶段提升编程能力【线程(基础)】---- 代码 Java 第二阶段提升编程能力【线程(基础)】---- 代码 Java 第二阶段提升编程能力【线程(基础)】---- ...

    人工智能-项目实践-多线程-Java多线程高并发实例.zip

    总之,这个项目实例旨在帮助开发者掌握Java多线程技术,提升处理高并发场景的能力,这对于在人工智能领域进行大数据处理和实时计算的项目尤其重要。通过对这些实例的学习和实践,你将能够更好地驾驭Java并发编程,为...

    JAVA多线程编程技术PDF

    在Java编程领域,多线程是一项至关重要的技术,它允许程序同时执行多个任务,从而提高系统资源的利用率和程序的响应速度...通过深入学习这份资料,开发者可以全面掌握Java多线程编程技术,提升程序的并发性能和稳定性。

    Java多线程-多功能演示系统.zip

    Java多线程-多功能演示系统,连接MySQL数据库利用多线程实现信息交流,为教师提供教学服务,便于教师整理教学资料,整合所需知识内容,更好的为学生提供生动形象的理解方式,加强教师与学生之间的互动沟通。

    基于tesseract的多线程OCR服务器的JAVA实现

    【标题】基于tesseract的多线程OCR服务器的JAVA实现 在信息技术领域,光学字符识别(OCR)技术被广泛应用于将图像中的文本转换为可编辑的电子格式。Tesseract是一款开源OCR引擎,由Google维护,它具有高精度和强大...

    人工智能-项目实践-多线程-java基础进阶 包括:socket,多线程,反射,servlet,动态代理等高级知识.zip

    人工智能-项目实践-多线程-java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识 java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识

    Java的多线程-线程间的通信.doc

    在Java多线程编程中,线程间的通信是非常重要的概念,用于协调多个并发执行的任务。线程的状态转换是理解线程通信的基础,主要包括四个状态:新(New)、可执行(Runnable)、死亡(Dead)和停滞(Blocked)。新状态...

    java线程-Java内存模型

    Java线程-Java内存模型是Java并发编程中的关键概念,它描述了多个线程如何共享和访问内存资源,以及如何保证数据的一致性和安全性。Java内存模型(JMM)是Java虚拟机规范的一部分,用于定义程序中各个线程对共享变量...

Global site tag (gtag.js) - Google Analytics