码迷,mamicode.com
首页 > 编程语言 > 详细

好记性不如烂笔头72-多线程-虚假多线程

时间:2015-03-30 18:49:24      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:多线程   thread   java   sleep   

在编写多线程应用的时候,因为多线程的应用有一定的不可确定性,结果一些明显的山寨多线程也鱼目混珠,下面的应用虽然用到了thread,但是本质上,就是一个虚假的多线程


虚假多线程的java源代码

package com.thread;
/**  
 * 假多线程,虽然有Thread关键词
 * @author 范芳铭
 */ 
public class EasyFalseThread {
    int i = 0, j = 0;

    public void start(int flag) {
        //让系统运行6次,为了能观察结果即可
        for(int count = 0 ; count < 6 ; count ++){
            try {
                Thread.sleep(100);
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (flag == 0) {
                i++;
                System.out.println("i=" + i);
            } else {
                j++;
                System.out.println("分割点:j=" + j);
            }   
        }
    }

    public static void main(String[] args) {
        new EasyFalseThread().start(0);
        new EasyFalseThread().start(1);
    }
}

运行结果
i=1
i=2
i=3
i=4
i=5
i=6
分割点:j=1
分割点:j=2
分割点:j=3
分割点:j=4
分割点:j=5
分割点:j=6

从运行结果看很明显,这哪里是什么多线程呀,这个简直就是标准的串行运行呀。

原因
虽然我们用了thread的一些方法(sleep),但是没有继承Thread类,也没有实现Runnable接口,本质上来说,我们这个多线程,是假冒伪劣的虚假产品,因此,它不能并行运转,也是情理之中。

好记性不如烂笔头72-多线程-虚假多线程

标签:多线程   thread   java   sleep   

原文地址:http://blog.csdn.net/ffm83/article/details/44753549

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!