java Thread两种简单用法总结

最简单的方法:

new Thread(new Runnable() {
                            public void run() {

                                  //线程要运行的内容

                            }
                        }).start();

下面两种比较麻烦。

方法一: 用继承Thread实现

package threadtest13;
//多线程的写法2,用两种情况变换,
//情况1:新建一个对象,两个线程共享一个对象。另外是新建两个对象,两个线程用两个对象
//情况2:int i=0;拿到run()外面与在run()里面两种情况。
//上面4种情况可以排列组合试一下
public class Thread13 {
    
    public static void main(String args[]){
        MyThread myThread = new MyThread();
       
        // MyThread myThread2= new MyThread();//2
        
        Thread t1= new Thread(myThread);
        Thread t2= new Thread(myThread);
        //Thread t2= new Thread(myThread2); //2
        t1.start();
        t2.start();
    }
}

class MyThread extends Thread {
   // int i=0;//1
    public void run() {
        String name = Thread.currentThread().getName();
        String inf=Thread.currentThread().toString();
        long idnum = Thread.currentThread().getId();
      for(int i=0;i<10;i++){//不管是新建一个对象,还是两个对象,//2,都是打印20个数据
          //      for(;i<10;i++){//新建一个对象的时候,打印11个左右的数据 ,新建两个对象的时候,//2,会

打印20个数据。//1
        System.out.println("i----------"+i + ",thread name==" + name
                + ",threadid==" + idnum+",thread inf=="+inf);
    }
    }
}
上面方法两个线程不能同步。



方法二:用“实现”Runnable方法实现
package threadtest12;
//多线程的写法1
public class Thread12 {

    public static void main(String args[]) {
        MyThread myThread = new MyThread();
        //myThread.run();
        //把这个MyThread包装称为Thread
        Thread t1 = new Thread(myThread);
        Thread t2= new Thread(myThread);
        t1.start();
        t2.start();
        
    }

}

class MyThread implements Runnable {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        String name = Thread.currentThread().getName();
        String inf=Thread.currentThread().toString();
        long idnum = Thread.currentThread().getId();
        for(int i=0;i<10;i++){
        System.out.println("aaaaa----------" + ",thread name==" + name
                + ",threadid==" + idnum+",thread inf=="+inf);
    }
    }

}
两个共享一个thread对象,并发调用,20条数据

猜你喜欢

转载自blog.csdn.net/cz285933169/article/details/6382166