Java之多线程实例
来源:互联网 发布:java 遍历ftp文件夹 编辑:程序博客网 时间:2024/05/13 00:18
package thread;//军队线程//模拟作战双方的行为public class ArmyRunnable implements Runnable { //volatile保证了线程可以正确的读取其他线程写入的值//保证可见性,ref JMM,happens-before原则//修饰被不同线程访问和修改的变量volatile boolean keepRunning = true;@Overridepublic void run() {while(keepRunning){//发动5连击for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+"进攻对方["+i+"]");//让出了处理器时间,下一次进程的执行是随机的Thread.yield();}} System.out.println("战斗结束!");}}
package thread;public class KeyPersonThread extends Thread {public void run(){System.out.println(Thread.currentThread().getName()+"开始了战斗!");for(int i=0;i<10;i++){System.out.println(Thread.currentThread().getName()+"左突右杀,攻击隋军!");}System.out.println(Thread.currentThread().getName()+"结束了战斗!");}}
package thread;/** * 隋唐演义大戏舞台 */public class Stage extends Thread {public void run() {ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable();ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();// 使用Runnable接口创建线程Thread armyOfSuiDynasty = new Thread(armyTaskOfSuiDynasty, "隋军");Thread armyOfRevolt = new Thread(armyTaskOfRevolt, "农民起义军");// 启动线程,让军队开始作战armyOfSuiDynasty.start();armyOfRevolt.start();// 舞台线程休眠try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}try {armyOfRevolt.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("正当双方激战正酣,半路杀出了个程咬金");Thread mrCheng = new KeyPersonThread();mrCheng.setName("程咬金");System.out.println("程咬金的理想就是结束战争,使百姓安居乐业!");//停止军队作战//停止线程的方法armyTaskOfSuiDynasty.keepRunning = false;armyTaskOfRevolt.keepRunning = false; try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}/** * 历史大戏留给关键人物 */mrCheng.start();//万众瞩目,所有线程等待程先生完成历史使命try {mrCheng.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("战争结束,人民安居乐业,程先生实现积极的人生梦想,为人民做出了贡献");}public static void main(String[] args) {new Stage().start();}}
1 0
- java之多线程实例
- Java之多线程实例
- java之多线程实例 生产者与消费者
- Delphi之多线程实例
- Delphi之多线程实例
- 【Java】Java之多线程
- python之多线程简单实例
- Java学习之多线程
- java基础教程之多线程
- java之多线程
- Java学习之多线程
- java基础之多线程
- Java之多线程
- java基础之多线程
- Java基础之多线程
- JAVA之多线程
- java之多线程
- Java之多线程编程
- Android面试指南-面霸之路07-优化合集
- HTML入门学习笔记
- VS清除打开项目时的TFS版本控制提示
- Oracle 11g的安装和配置
- 3081 排队
- Java之多线程实例
- tx5-网易轮播图
- 31 5个数求最值
- Android下开机自启动C程序【转】
- Tomcat项目部署方式
- HDOJ 1596 find the safest road(最短路)
- Android服务概要
- win32和Ubuntu下安装pytesseract
- 数据结构示例之字符串替换