多线程编程, 这三个方法够我用了.


有一段多线程的程序需要完善, 捋了一遍 XE4 中关于多线程的源码, 发现有这三个类方法就足够我用了, 暂时结束学习.

TThread.CreateAnonymousThread(); //普通
TThread.Queue();                 //队列
TThread.Synchronize();           //VCL 同步

转载于:https://my.oschina.net/hermer/blog/320758

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java多线程编写龟兔赛跑程序的示例代码: ```java public class Race { public static void main(String[] args) { // 创建两只动物 Animal rabbit = new Animal("兔子", 10); Animal tortoise = new Animal("乌龟", 5); // 启动两只动物的线程 rabbit.start(); tortoise.start(); // 等待两只动物的线程执行完毕 try { rabbit.join(); tortoise.join(); } catch (InterruptedException e) { e.printStackTrace(); } // 判断比赛结果 if (rabbit.getPosition() >= 100 && tortoise.getPosition() >= 100) { System.out.println("平局!"); } else if (rabbit.getPosition() >= 100) { System.out.println("兔子获胜!"); } else { System.out.println("乌龟获胜!"); } } } class Animal extends Thread { private String name; // 动物名称 private int speed; // 动物速度 private int position; // 动物位置 public Animal(String name, int speed) { this.name = name; this.speed = speed; } public int getPosition() { return position; } public void run() { System.out.println(name + "开始起跑!"); // 动物开始赛跑,每隔一段时间更新一次位置 while (position < 100) { try { Thread.sleep(100); // 线程休眠一段时间 } catch (InterruptedException e) { e.printStackTrace(); } int distance = speed; // 计算动物本次移动的距离 if ("兔子".equals(name)) { // 如果是兔子,则有一定几率停下来休息 if (Math.random() < 0.2) { System.out.println("兔子在路边睡觉!"); distance = 0; } } position += distance; // 更新动物位置 System.out.println(name + "已经跑了" + position + "米!"); } System.out.println(name + "已经到达终点!"); } } ``` 在这个示例代码中,我们创建了一个 `Race` 类和一个 `Animal` 类。`Race` 类是程序的入口,它创建两只动物(兔子和乌龟),并启动它们的线程。`Animal` 类表示一个动物,它有三个属性:名称、速度和位置。它有一个 `run()` 方法,表示动物线程的执行逻辑。在 `run()` 方法中,动物每隔一段时间更新一次位置,当有一只动物到达终点时,比赛结束,并输出比赛结果。 需要注意的是,在 `Animal` 类的 `run()` 方法中,我们使用了 `Thread.sleep()` 方法来模拟动物赛跑过程中的时间间隔。我们还使用了 `Math.random()` 方法来模拟兔子在路边睡觉的概率。这些细节的处理可以使程序更加逼真和有趣。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值