JAVA 线程

1、线程概念

 创建好了自己的线程类之后,就可以创建线程对象了,然后通过start()方法去启动线程。注意,不是调用run()方法启动线程,run方法中只是定义 需要执行的任务,如果调用run方法,即相当于在主线程中执行run方法,跟普通的方法调用没有任何区别,此时并不会创建一个新的线程来执行定义的任务。

2、实现进程

thread类方法实现进程

import java.io.InterruptedIOException;


public class xiancheng {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		mThread you = new mThread("你");
		mThread she = new mThread("她");
		you.start();
		she.start();
		// TODO Auto-generated method stub
		System.out.println("主方法运行结束");

	}

}


class mThread extends Thread
{
	private String who;
	public mThread(String str)
	{
		who = str;
	}
	public void run()
	{
		for(int i =0;i<10;i++)
		{
			try
			{
				sleep((int)(1000*Math.random()));
			}
			 catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println(who+"正在运行"+i);
		}
	}
	
}

Runnable 接口实现

引入Runnable接口的原因: 如果类本身已经继承了某个父类,由于Java不允许类的多重继承,所以就无法继承Thread类,特别是小程序。这种情况下可以创建一个类来实现Runnable接口。该方法更具有灵活性。Runnable接口只有一个方法run(),用户可以声明一个类并实现Runnable接口,并定义run()方法,将线程代码写入其中。此外由于该接口没有任何对线程的支持,所以还必须创建Thread实例,这一点通过Thread类的构造方法实现。

间接实现多重继承

private String who;
    public mThread(String str)
    {
        who = str;
    }
    public void run()
    {
        for(int i =0;i<10;i++)
        {
            try
            {
                Thread.sleep((int)(1000*Math.random()));
            }
             catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(who+"正在运行"+i);
        }
    }
原文地址:https://www.cnblogs.com/Kevin127/p/4987991.html