1 多线程存在的必要
2 怎样实现多线程
多线程就是开启多个线程让电脑在处理一个程序的同时再处理另一个程序。其实就是为了提高电脑执行程序的必要性。
在这里 我举两个例子。分别用两种方法实现多线程
不管是那种方法都要调用run()方法。要实现多线程的操作 必须用到run() 这是在Runnable里的一个抽象方法通过实现它实现多线程
JAVA里提供了开启线程的方法 start()。
(1)继承extends方法
public class Test1{
public static void main(String args[]){
ThreadTest t=new ThreadTest();
t.run();
}
}
class ThreadTest extends Thread{
private int tickets=100;
public void run(){
while(true){
if(tickets<100){
System.out.println(Thread.currentThread().getName()+"卖票"+tickets--);
}
}
}
}
运行的结果是每个线程都卖100张票,也就是卖了400张票。但这不是我们想要的结果。
因为这种方法无法实现资源共享 所以有了下面这种方法。
(2)实现implements接口
一般我们在实现多线程的都用implements实现
public class Test2{
public static void main(String args[]){
TestThread t=new TestThread();//
new Thread(t).start();
/*
其实就是 Thread a=new Thread(t);
a.start();
创建了Thread类的对象 并将Runnable接口的子类对象作为参数传入
Thread类的构造方法。这是为了让线程对象去执行指定的run()方法
而这个方法所属Runnable的子类。
这里的a是Runnable类型的。
同一个线程开启了4次,达到了资源共享的效果
*/
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
class TestThread implements Runnable{
private int tickets=100;
public void run(){
while(true){
if(tickets>0){
System.out.println(Thread.currentThread().getName()+"卖票"+tickets--);
}
}
}
}
表达的不怎么好,不知道形容的准不准确,多多指教 。