</pre>使用多线程<p></p><p><span style="white-space:pre"> </span>直入主题,开门见山</p><p><span style="white-space:pre"> </span>实现多线程的方式:</p><p><span style="white-space:pre"> </span>1.继承Thread类 2.实现Runnable接口</p><p><span style="white-space:pre"> </span>首先看一下Thread类,</p><p><span style="white-space:pre"> </span><pre name="code" class="java">public class Thraed implements Runnable //本身实现了Runnable接口
static int MAX_PRIORITY=10; //最高线程优先级
static int NOR_PRIORITY=5; //中等线程优先级
static int MIN_PRIORITY=1; //最低线程优先级
举个简单多线程例子:
public class ThreadDemo extends Thread{
@Override
public void run() {
super.run();
System.out.println("myThread run !!!!!!");
}
}
public class ThreadTest {
public static void main(String[] args) {
ThreadDemo demo=new ThreadDemo();
demo.start();
System.out.println("maim !!!!!!!!!!!!!!!");
}
}
结果为
main !!!!!!!!!!!!!!!!!!!!!!!!!!!
myThraed run !!!!!!!!!!!!!!!!!!!!!!!!!!!
由此看来多线程编程与代码的顺序无关!!!!!cpu以不确定的方式调用run() 方法,
2.start() 方法与run() 方法
start方法
该方法的作用为通知 " 线程规划器” 线程已经准备就绪,等待调用线程对象的run()方法。
如果通过Thread.run()来执行run(),相当于是用main主线程来调用,也就是说必需要等到run方法结束之后才执行后面的代码,单线程
run方法
执行任务块代码
3.第二种实现多线程方式
实现runnable接口
public class ThreadDemo2 implements Runnable{
@Override
public void run() {
System.out.println("run !!!");
}
}
public static void main(String[] args) {
/*
ThreadDemo demo=new ThreadDemo();
demo.start();
System.out.println("maim !!!!!!!!!!!!!!!");
*/
Runnable runnable=new ThreadDemo2();
Thread thread=new Thread(runnable);
thread.start();
System.out.println("main");
}
}
结果同上。。
这两种的区别不用多说了吧。。java不支持多继承 !!!!!!!!!!!!!!!!!!!!!!哈哈