标签:runnable thread 多线程 java 好记性不如烂笔头
通过继承class Thread或实现Runnable接口,我们都可以实现多线程。如果有一个类,它已继承了某个类,又想实现多线程,那就可以通过实现Runnable接口来实现。 
run()函数必须进行覆写,把要在多个线程中并行处理的代码放到这个函数中。 
把一个实现了Runnable接口的对象作为参数产生一个Thread对象,再调用Thread对象的start()函数就可执行并行操作。 
例如: 
        EasyRunnableThread thread2 = new EasyRunnableThread(); 
        new Thread(thread2).start(); 
如果开发者自己直接调用了run()方法,那么这个将作为一个普通的串行程序进行执行,而不是基于多线程运转。
简单多线程的实现的java源代码
package com.thread;
/**
 * 一个简单的实现Runnable接口的多线程
 * 
 * @author 范芳铭
 */
public class EasyRunnableThread implements Runnable {
    int i = 0, j = 0,k=0;
    int flag = 0;
    public void run() {
        //让系统运行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 if (flag == 1){
                j++;
                System.out.println("B分割点:j=" + j);
            }
            else {
                k++;
                System.out.println("C分割点:k=" + k);
            }
        }
    }
    public static void main(String[] args) {
        EasyRunnableThread thread1 = new EasyRunnableThread();
        thread1.flag = 0;
        //不要直接调用run方法,否则会当成普通的串行线程处理
        //thread1.run();
        new Thread(thread1).start();
        EasyRunnableThread thread2 = new EasyRunnableThread();
        thread2.flag = 1;
        new Thread(thread2).start();
        EasyRunnableThread thread3 = new EasyRunnableThread();
        thread3.flag = 2;
        new Thread(thread3).start();
    }
}运行结果 
C分割点:k=1 
B分割点:j=1 
i=1 
B分割点:j=2 
i=2 
C分割点:k=2 
B分割点:j=3 
C分割点:k=3 
i=3 
B分割点:j=4 
i=4 
C分割点:k=4 
B分割点:j=5 
i=5 
C分割点:k=5 
i=6 
C分割点:k=6 
B分割点:j=6
同样,如果我们把直接调用class中的run方法,那么也会作为一个普通的串行方法进行调用,而不是基于多线程的运作。
好记性不如烂笔头74-多线程-实现Runnable接口的多线程
标签:runnable thread 多线程 java 好记性不如烂笔头
原文地址:http://blog.csdn.net/ffm83/article/details/44753857