老程序员分享:Java基础

简介: 老程序员分享:Java基础

"

编写多线程应用程序,模拟多个人通过一个山洞:

1、 这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒

2、随机生成10个人,同时准备过此山洞,显示一下每次通过山洞人的姓名

MuThreadTest.java

package com.Train;

public class MuThreadTest{

public static void main(String【】 args) {

// TODO Auto-generated method stub

//创建一个山洞

Tunnel tul = new Tunnel();

//十个人过山洞

Thread p1 = new Thread(tul,""p1"");

Thread p2 = new Thread(tul,""p2"");

Thread p3 = new Thread(tul,""p3"");

Thread //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDE0NDc1Ng==.html

p4 = new Thread(tul,""p4"");

Thread p5 = new Thread(tul,""p5"");

Thread p6 = new Thread(tul,""p6"");

Thread p7 = new Thread(tul,""p7"");

Thread p8 = new Thread(tul,""p8"");

Thread p9 = new Thread(tul,""p9"");

Thread p10 = new Thread(tul,""p10"");

p1.start();

p2.start();

p3.start();

p4.start();

p5.start();

p6.start();

p7.start();

p8.start();

p9.start();

p10.start();

}

}

class Tunnel implements Runnable{

private int crossedNum = 0;

//override

public void run(){

Cross();

}

//同步函数--同步锁为this,即main()中创建的tul。

public synchronized void Cross(){

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

e.printStackTrace();

}

//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjU5MTY3Ng==.html

crossedNum++;

System.out.println(Thread.currentThread().getName()+"" have Crossed the tunnel !""+"" This is ""+crossedNum+""th"");

}

}

:


"
image.png
相关文章
|
2月前
|
存储 算法 Java
惊!Java程序员必看:JVM调优揭秘,堆溢出、栈溢出如何巧妙化解?
【8月更文挑战第29天】在Java领域,JVM是代码运行的基础,但需适当调优以发挥最佳性能。本文探讨了JVM中常见的堆溢出和栈溢出问题及其解决方法。堆溢出发生在堆空间不足时,可通过增加堆空间、优化代码及释放对象解决;栈溢出则因递归调用过深或线程过多引起,调整栈大小、优化算法和使用线程池可有效应对。通过合理配置和调优JVM,可确保Java应用稳定高效运行。
111 4
|
2月前
|
算法 Java 程序员
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
57 9
|
2月前
|
Java 程序员
Java数据类型:为什么程序员都爱它?
Java数据类型:为什么程序员都爱它?
41 1
|
3月前
|
Java 程序员 C++
大牛程序员用Java手写JVM:刚好够运行 HelloWorld
大牛程序员用Java手写JVM:刚好够运行 HelloWorld
|
2月前
|
安全 Java 程序员
阿里开发手册 嵩山版-编程规约 (四)OOP规约-Java程序员必看知识点!!!
《阿里开发手册 嵩山版》的OOP规约部分强调了面向对象编程的最佳实践,包括正确使用静态方法、覆写方法的注解、可变参数的使用、接口的稳定性、equals和compareTo方法的使用、BigDecimal的正确比较、包装类与基本数据类型选择、POJO类的属性和方法设计等,以提升代码的质量和维护性。
|
2月前
|
设计模式 前端开发 Java
Spring,作为Java程序员的你能想到什么呢?
该文章主要介绍了Spring框架对于Java程序员的意义,包括Spring框架的一些核心能力和为什么它是如此重要。
|
4月前
|
IDE Java 程序员
JAVA注解大揭秘:为何程序员都爱它如命?
【6月更文挑战第29天】Java注解是元数据机制,用于在代码中嵌入信息供编译器、IDE和工具使用。它们以`@`标识,可用于类、方法等,用于编译时检查、代码生成(如Lombok的`@Getter`、`@Setter`)、框架集成(如Spring的`@Autowired`)。程序员喜欢注解因其简洁性、可读性和可扩展性,能减少冗余代码并增强代码的可理解性。
55 15
|
4月前
|
JSON Java fastjson
老程序员分享:java对象转json
老程序员分享:java对象转json
152 3
|
4月前
|
机器学习/深度学习 Java 关系型数据库
程序员必知:关于高淇JAVA中SORM总结学习笔记详细个人解释
程序员必知:关于高淇JAVA中SORM总结学习笔记详细个人解释
35 2
|
4月前
|
算法 Java 程序员
老程序员分享:Java开源
老程序员分享:Java开源
23 0
下一篇
无影云桌面