JavaSE---多线程---线程的创建、启动

1、概述

      1.1  Java中使用Thread类表示线程;

           所有的线程对象必须是Thread类 或 其子类的实例;

           每条线程的作用:完成一定的任务;

           Java中使用run方法来封装线程执行体;  

      1.2  默认情况下,主线程的名字是main;

                创建的多条线程的名字是:Thread-0、Thread-1、Thread-2...;

      1.3  创建、启动线程

            1.3.1  继承Thread类

                  创建继承Thread类子类--->重写run方法--->创建子类实例--->子类实例调用start方法启动线程

                      Thread.currentThread()  返回当前线程对象

                      getName()    返回当前线程的名字

                      setName()    给当前线程设置名字

                  存在的问题

                  多个线程之间无法共享变量;

package com.an;

public class MyThread extends Thread{

    private int i;

    @Override
    public void run() {
        for (;i<20;i++){
            System.out.println(Thread.currentThread().getName()+i);
        }
    }

    public static void main(String[] args){
        for (int i=0;i<30;i++){
            System.out.println(Thread.currentThread().getName()+i);
            if (i==15){
                Thread thread=new MyThread();
                thread.setName("test-one");
                thread.start();
                Thread thread2=new MyThread();
                thread2.setName("test-two");
                thread2.start();
            }
        }
    }
}

           1.3.2  实现Runnable接口

                  创建实现Runnable接口的实现类--->重写run方法--->以实现类的实例为target,创建Thread的实例,Thread类的实例才是真正的线程对象--->Thread实例调用start方法

                  多线程之间可以共享同一个target

package com.an;

public class ThreadTarget implements Runnable {
    //多线程共享资源i
    private int i;
    public void run() {
        for (;i<20;i++){
            System.out.println(Thread.currentThread().getName()+"="+i);
        }
    }

    public static void main(String[] args){
        for (int i=0;i<30;i++){
            System.out.println(Thread.currentThread().getName()+"="+i);
            if (i==15){
                ThreadTarget threadTarget=new ThreadTarget();
                new Thread(threadTarget,"test-one").start();
                new Thread(threadTarget,"test-two").start();
            }
        }
    }
}

  

  

猜你喜欢

转载自www.cnblogs.com/anpeiyong/p/11022682.html
今日推荐