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; } }
- 浏览: 73905 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (166)
- Apache (15)
- Linux (10)
- J2EE (8)
- 拾光 (3)
- Mybatis (10)
- JAVA (41)
- Spring (17)
- SpringSecurity (3)
- SpringMVC (9)
- 分布式 (6)
- JVM (5)
- hadoop (1)
- SSM框架 (2)
- Quartz (3)
- velocity (1)
- Oracle (3)
- Log4J (1)
- EhCache (0)
- OSGI (4)
- 讨论 (0)
- HTML (1)
- Spring Hessian (3)
- memcached (1)
- freemarker (3)
- OpenOffice (2)
- MYSQL (1)
- shiro (1)
- mac mysql (0)
- Redis (2)
- JavaScript (3)
- MyEclipse (2)
- atomikos (1)
- Maven (1)
- MAC Pro (2)
- Disruptor (2)
- 设计模式 (24)
- 正则表达式 (1)
- 创建型模式 (5)
- 结构性模式 (3)
最新评论
发表评论
-
Java常用类String实战
2016-04-29 17:02 0http://toutiao.com/a62718859032 ... -
通Java工程转换成maven工程
2016-04-29 15:01 502一、使用IDE提供的转换功能: 1. 右键普通Java项目, ... -
Java中Array与ArrayList的主要区别
2016-04-05 21:26 2051)精辟阐述: 可以将 ... -
JAVA集合类框架
2016-04-05 21:27 415为什么要使用集合类 当你事先不知道要存放数据 ... -
ArrayList和LinkedList区别
2016-04-05 21:24 304一般大家都知道ArrayList和LinkedList的大 ... -
LinkedList基本用法
2016-04-05 21:25 587LinkedList类是双向列表,列表中的每个节点都包含了对 ... -
Java集合类详解
2016-03-31 15:47 198集合类说明及区别Collec ... -
JAVA电商面试题
2016-03-30 13:45 459一、Java线程池的具体 ... -
jdk动态代理与cglib动态代理有什么区别
2016-03-25 14:34 549<!--StartFragment-->AOP ... -
Spring @Resource、@Autowired、@Qualifier的注解注入及区别
2016-03-23 10:04 495<!--StartFragment-->< ... -
Spring 实现数据库读写分离
2016-03-09 17:58 382<!--StartFragment-- ... -
Java RandomAccessFile用法
2015-11-19 09:21 336RandomAccessFile Random ... -
Java代码优化
2015-08-14 09:32 386在Java程序中,性能问题的大部分原因并不在于Java语言, ... -
java synchronized详解
2015-01-17 15:08 300记下来,很重要。 Java语言的关键字,当它用来修饰 ... -
HashMap和ConcurrentHashMap浅析
2015-01-17 15:07 392HashMap hashmap本质数 ... -
HashTable, hashmap ,currenthashmap
2015-01-17 15:07 375在Java类库中出现的第一个关联的集合类是 Hashtab ... -
java 死锁产生原因及解锁
2015-01-17 15:08 331进程死锁及解决办法 一、要点提示 (1) 掌握死锁的 ... -
Java多线程设计模式
2015-01-19 10:26 339Introduction 1 Java语言的线程开始 ... -
Java多线程基础
2015-01-19 10:26 369Thread类的run方法和start方法 ... -
JAVA多线程编程
2015-01-19 10:26 540这个专题主要讨论并 ...
相关推荐
Java 多线程-Socket 编程 Java 多线程-Socket 编程是指在 Java 语言中使用多线程技术来实现网络编程,特别是使用 Socket 编程来实现客户端和服务器端的通信。在 Java 中,多线程可以使用 Thread 类和 Runnable 接口...
多线程注意: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编程中,多线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而提高了系统的效率和响应性。然而,在某些场景下,我们可能需要控制线程的执行顺序,确保它们按照特定的顺序交替运行,这在并发编程...
总之,"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”的学习资源中,我们深入探讨了Java内存模型以及多线程的特性与控制机制。 **Java内存模型** Java内存模型,...
Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...
《Java多线程编程实战指南-核心篇》是一本深入探讨Java并发编程的书籍,旨在帮助读者掌握在Java环境中创建、管理和同步线程的核心技术。Java的多线程能力是其强大之处,使得开发者能够在同一时间执行多个任务,提高...
Thread安全是Java多线程编程中的一种设计理念,用于确保多个线程可以安全地共享数据和资源。Thread安全可以通过使用线程同步机制、线程安全的数据结构和ThreadLocal变量等方式来实现。 CAS操作 CAS(Compare And ...
精灵线程(Daemon)或守护线程---马克-to-win java视频
### JAVA编程高级-多线程编程 ...总之,Java中的多线程编程是一个非常重要的主题,对于提高程序的性能和响应速度有着不可替代的作用。掌握好Java中的多线程机制,可以帮助开发者更好地设计和实现高效的应用程序。
Java 第二阶段提升编程能力【线程(基础)】---- 代码 Java 第二阶段提升编程能力【线程(基础)】---- 代码 Java 第二阶段提升编程能力【线程(基础)】---- 代码 Java 第二阶段提升编程能力【线程(基础)】---- ...
总之,这个项目实例旨在帮助开发者掌握Java多线程技术,提升处理高并发场景的能力,这对于在人工智能领域进行大数据处理和实时计算的项目尤其重要。通过对这些实例的学习和实践,你将能够更好地驾驭Java并发编程,为...
在Java编程领域,多线程是一项至关重要的技术,它允许程序同时执行多个任务,从而提高系统资源的利用率和程序的响应速度...通过深入学习这份资料,开发者可以全面掌握Java多线程编程技术,提升程序的并发性能和稳定性。
Java多线程-多功能演示系统,连接MySQL数据库利用多线程实现信息交流,为教师提供教学服务,便于教师整理教学资料,整合所需知识内容,更好的为学生提供生动形象的理解方式,加强教师与学生之间的互动沟通。
【标题】基于tesseract的多线程OCR服务器的JAVA实现 在信息技术领域,光学字符识别(OCR)技术被广泛应用于将图像中的文本转换为可编辑的电子格式。Tesseract是一款开源OCR引擎,由Google维护,它具有高精度和强大...
人工智能-项目实践-多线程-java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识 java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识
在Java多线程编程中,线程间的通信是非常重要的概念,用于协调多个并发执行的任务。线程的状态转换是理解线程通信的基础,主要包括四个状态:新(New)、可执行(Runnable)、死亡(Dead)和停滞(Blocked)。新状态...
Java线程-Java内存模型是Java并发编程中的关键概念,它描述了多个线程如何共享和访问内存资源,以及如何保证数据的一致性和安全性。Java内存模型(JMM)是Java虚拟机规范的一部分,用于定义程序中各个线程对共享变量...