java多线程基础1
关键词:Runnable,Thread,start,run等等。
创建一个线程的两种方式:
一是继承Thread类
package org.iteye.bbjava.mutilthread;public class MainThread extends Thread{Integer maxInt=0;public void run(){//maxInt=new Integer("123");while(maxInt<1000){maxInt++;if(maxInt%6==0)//try {//Thread.sleep(10);//} catch (InterruptedException e) {//// TODO Auto-generated catch block//e.printStackTrace();//}System.out.println(maxInt);}//System.out.println(maxInt.MAX_VALUE);System.out.println(maxInt);//System.out.println(maxInt.MIN_VALUE);}public static void main(String []args){Thread aTread=new MainThread();Thread at=new Thread(new AnotherThread());aTread.start();at.start();}}二是实现Runnable接口:
package org.iteye.bbjava.mutilthread;public class AnotherThread implements Runnable{@Overridepublic void run() {int i=0;while(i<1000){i++;if(i%5==0)//try {////Thread.sleep(10);//} catch (InterruptedException e) {//// TODO Auto-generated catch block//e.printStackTrace();//}System.out.println("what should I do?");}}}没错,java中创建线程就是这么简单,注意:启动线程是start()方法。有些新手可能会犯这个的错误:Thread aTread=new MainThread();aThread.run();//这不是启动线程的"钥匙"。
还有就是实现Runnable接口的线程是这样子启动的:Thread at=new Thread(new AnotherThread());at.start();
引用tij-4的作者觉得把Thread改名字为Task更为合适。
为什么有了第一种方式,还要有第二种方式呢?
java里面是没有多继承的,但它可以实现多个接口。比如说你用继承的方式创建线程会碰到这种麻烦,一些特殊要求一定要继承一个基类,这下麻烦了;所以你有第二个选择,那就是采用实现Runnable方式创建线程,现在可以继承那个基类了。