Java多线程实现

    在Java中实现多线程有2种方法:

1.继承Thread

public class ThreadDemo extends Thread {
    String name;
    private  int count = 100;

    // 使用Thread类的有参数的构造函数
    ThreadDemo(String name) {
        this.name = name;
    }

    public void run() {
        // compute primes larger than minPrime
        for (int i = 0; i < 100; i++) {
                calcCount();
                System.out.println("线程开始:" + this.name + ",i=" + i + ",count="
                        + count);
        }
        // System.out.println(name);
    }

    private synchronized void calcCount() {
        if (count > 0) {
            count--;
        }
    }

    public static void main(String[] args) {
        ThreadDemo td = new ThreadDemo("1");
        ThreadDemo td2 = new ThreadDemo("2");
        ThreadDemo td3 = new ThreadDemo("3");
        td.start();
        td2.start();
        td3.start();
    }
}

 

2.实现Runnable接口

public class RunnableDemo implements Runnable{
    String name;

    RunnableDemo(String name) { 
        this.name=name;
 }    
    
    @Override
    public void run() {
        // TODO Auto-generated method stub
         for(int i=0;i<100;i++){  
             System.out.println("线程开始:"+this.name+",i="+i);  
             }  
    }
    
    public static void main(String[] args){
        RunnableDemo rd=new RunnableDemo("1");
        RunnableDemo rd2=new RunnableDemo("2");
        RunnableDemo rd3=new RunnableDemo("3");
        new Thread(rd,"ww").start();
        new Thread(rd2).start();
        new Thread(rd3).start();
    }

}

 这两种方式都可以正常完成多线程的处理,网上讲述:一般情况下使用多线程是用业务类实现Runnable接口。

看下Thread的定义:

public class Thread implements Runnable{...}

我们就知道Thread其实就是Java里面对Runnable的官方实现,如果我们不需要特别的控制的话,直接用Thread就可以了。

情况有点类似List的实现,我们在Java中用ArrayList就可以了,当然你也可以自定义一个List的实现类出来。。。。

 

资源同步

使用多线程就不得不提到线程同步,为了访问有限资源,对资源上锁是一件必须的操作步骤。当然上锁也是一件耗费系统资源的事情,需要在开发时做一些取舍。

常用上锁方法有 synchronized 、lock,可以简单认为是自动化和手工处理的差别。

对同步讲的较多的是:http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html

 

posted on 2015-04-01 17:12  马来亚  阅读(208)  评论(0编辑  收藏  举报

导航