JAVA学习之路--线程同步
来源:互联网 发布:中国电信it研发中心 编辑:程序博客网 时间:2024/05/21 06:36
public class Cave {
//动作 :人过山洞 , 条件: 每次只能通过一个人,每个人通过山洞的时间为5秒
public synchronized void passCave(Person person){
System.out.println("==="+person.getName()+"准备通过山洞===");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("---"+person.getName()+"已通过山洞---");
}
}
//定义一个Person类
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//创建一个多线程类
public class PersonCave implements Runnable {
private Cave cave;
private Person person;
public PersonCave(Cave cave,Person person){
this.cave = cave;
this.person = person;
new Thread(this).start();
}
@Override
public void run() {
System.out.println(person.getName()+"到达洞口");
cave.passCave(person);
}
}
/**
* 编写多线程应用程序,模拟多个人通过一个山洞的情况。这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒,随机生成10个人,
* 同时准备过此山洞,显示一下每次通过山洞人的姓名。
*
* @author viktor
*
*/
public class TestPersonPassCave {
public static void main(String[] args) {
String[] personArray = { "张三", "李四", "王二", "麻子", "赵五", "小明", "花花",
"如花", "旺财", "首长" };
RandomNumber randomNumber = new RandomNumber();
int c[] = randomNumber.ranNumber();
Cave cave = new Cave();
for (int index : c) {
String name = personArray[index];
Person person = new Person(name);
new PersonCave(cave, person);
}
}
}
- JAVA学习之路--线程同步
- Java线程学习笔记之线程同步
- Java学习之线程同步(Synchronization)
- java 多线程学习笔记之 线程同步
- 【Java并发学习】之线程的同步
- java之线程同步
- java 线程之同步
- Java线程之线程同步
- Java线程之线程同步
- java线程之线程同步
- Java线程之线程同步
- java多线程之路之线程同步—Core Java学习
- java线程学习4——线程同步之同步代码块
- java线程学习5——线程同步之同步方法
- java线程学习6——线程同步之同步锁
- 黑马程序员 Java学习总结之同步、线程间通信
- Java新技术---线程学习之常用同步工具类
- java学习之浅谈多线程2--线程同步
- 用webgl绘制一个彩色旋转立方体
- hdu1279
- OkHttp 封装
- 静态库编译inline函数后,该函数是不可见的
- 产品经理该如何做用户增长?
- JAVA学习之路--线程同步
- [C++]:A*——A Star算法简介
- java---线程池
- 浅谈数据仓库、商业智能、数据挖掘、大数据、云技术的前世今生。
- java方法中参数的传递机制(值传递)
- 图中指定两点间的最短距离
- BaseAdapter 使用
- java开发环境搭建
- ISO8601表达式任务