本帖最后由 刘吉庆 于 2013-4-6 12:48 编辑
当然可以替代,只是用的场景不同罢了,while用于不知道具体循环次数,而for多用于确定具体次数的循环。
代码我改为如下:- package cn.bbs;
- class Ticket implements Runnable {
- private int tick = 100;
- public void run() {
- // while (true) {
- // if (tick > 0) {
- // System.out.println(Thread.currentThread().getName()
- // + "...sale..." + tick--);
- // } else {
- // break;//停止
- // }
- // }
- for (; tick > 0;) {//第条新建线程start就会执行run()方法,因如你所写for (tick=100;tick>0 ;tick--),每次都会给重新赋值,tick--在输出语句已经减过,因此不必再减
- System.out.println(Thread.currentThread().getName() + "...sale..."
- + tick--);
- }
- }
- }
- public class TicketDemo {
- public static void main(String[] args) {
- Ticket t = new Ticket();
- Thread t1 = new Thread(t); // 创建一个线程。
- Thread t2 = new Thread(t);
- Thread t3 = new Thread(t);
- Thread t4 = new Thread(t);
- t1.start();
- t2.start();
- t3.start();
- t4.start();
- }
- }
复制代码 |