Java多线程

来源:互联网 发布:photoshopcs6 for mac 编辑:程序博客网 时间:2024/06/07 06:06

         Java线程是Thread类的对象,可以使用两种方式来创建多线程的Java应用程序,如下所示:

(1)实现Runnable接口

(2)继承Thread类

         两种方式,都要在线程类的内部实现run()方法,然后new一个Thread,最后.start()。

1、Runnable接口的实现

package runnable;public class RunnableTest {private int length;public RunnableTest(int length) {this.length = length;}public long sum() {long ret = 0;for(int i=0;i<length; i++)ret = ret+i;return ret;}}

package runnable;public class RunnableExtend extends RunnableTest implements Runnable {public RunnableExtend(int length) {super(length);}@Overridepublic void run() {long sum = sum();System.out.println(Thread.currentThread() + " sum =" + sum);}}


package runnable;public class Main {public static void main(String[] args) {System.out.println("Thread is " + Thread.currentThread());RunnableExtend mRunnableTestThread1 = new RunnableExtend(80);Thread th1 = new Thread(mRunnableTestThread1, "th1");th1.start();RunnableExtend mRunnableTestThread2 = new RunnableExtend(140);Thread th2 = new Thread(mRunnableTestThread2, "th2");th2.start();}}


2、Thread类

package thread;public class ThreadTest extends Thread {private int length;public ThreadTest(int length) {this.length = length;}public long sum() {long ret = 0;for(int i=0;i<length; i++)ret = ret+i;return ret;}public void run() {long sum = sum();System.out.println(Thread.currentThread() + " sum =" + sum);}}

package thread;public class Main {public static void main(String[] args) {System.out.println("Thread is " + Thread.currentThread());//直接继承,创建线程ThreadTest mThreadTest1 = new ThreadTest(80);Thread th1 = new Thread(mThreadTest1, "th1");th1.start();//使用匿名类创建new Thread("th2"){int length = 190;public void run(){int ret = 0;for(int i=0;i<length; i++)ret = ret+i;System.out.println(Thread.currentThread() + " sum =" + ret);}}.start();}}





0 0