随笔-10  评论-11  文章-20  trackbacks-0

实现多线程的方法一:

Java的线程可以通过继承java.lang.Thread类来实现的。
例:下面的类Thread07继承自Thread
import java.io.PrintStream;

public class Thread07 extends Thread
{

    public Thread07()
    {
    }

    public void run()                                     //重写run方法,在启动线程的时候会被java虚拟机自动调用
    {
        for(int i = 0; i < 10; i++)
            printMsg();

    }

    public void printMsg()
    {
        Thread t = Thread.currentThread();
        String name = t.getName();                 //得到该线程的名字
        System.out.println((new StringBuilder("name = ")).append(name).toString());
    }

   

public static void main(String args[])
    {
        Thread07 t = new Thread07();
        t.setName("test Thread");                   //设置线程的名字
        System.out.println((new StringBuilder("before start().tisAlive")).append(t.isAlive()).toString());
       
         t.start();                     //启动线程需要通过调用start的方法启动该线程,不是用户自己调用run方法
        
        System.out.println((new StringBuilder("just after start().tisAlive")).append(t.isAlive()).toString());
        for(int i = 0; i < 10; i++)
        {
            try
            {
                Thread.sleep(1000L);
            }
            catch(InterruptedException e)
            {
                e.printStackTrace();
            }
            t.printMsg();
        }

        System.out.println((new StringBuilder("buding")).append(t.isAlive()).toString());
    }
}

实现多线程的方法二:

 Java的线程可以通过继承Runnable接口来实现:
例:下面的类MyThread05继承自Runnable接口:

import java.io.PrintStream;

class MyThread05  implements  Runnable                       //继承Runnable接口
{

    MyThread05()
    {
    }

    public void run()                                                            //重写run方法
    {
        for(int i = 0; i < 100; i++)
             System.out.println((new StringBuilder(String.valueOf(name))).append("----->oooppooo").toString());  
    }
    
    public static void main(String args[])
    {
        //实例化三个线程
        MyThread mt1 = new MyThread("~~~A~~~");
        MyThread mt2 = new MyThread("~~~B~~~");
        MyThread mt3 = new MyThread("~~~C~~~");
         //分别通过调用start方法进行启动
        mt1.start();
        mt2.start();
        mt3.start();
    }
}



后记:
            1、进程与线程的区别   · 线程是在进程基础上的划分   · 进程是在操作系统上的划分 
            2、 使用多线程可以发现在同一个时间段上所有的程序是交替运行的。 
            3、 多线程的实现有两种方式:   · 实现Runnable接口   · 继承Thread类 
            4、 联系与区别:   ·  Thread类也是Runnable接口的子类   · 如果要想启动线程,则必须把自定义的实现了Runnable接口的子类对象放入Thread类中   ·  Runnable接口可以实现多个资源的共享   · 绝对要优先使用Runnable接口,避免单继承的局限。用Thread继承而来的线程,一个线程序对象只能启动一次,无论调用多少遍start方法,结果都只有一个线程。



posted on 2010-11-12 19:26 Soap MacTavish 阅读(6051) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: