线程浅谈(一)

线程:

1相关的概念:

  进程中包含一个或多个线程。

  进程:运行再系统之上的一个程序实体,具有独立的存储空间。

  线程:运行再进程里面的一个子任务,没有独立的内存空间,必须共享新车的内存空间。

  程序:是静态的概念。

  并发:单核CPU同时切换运行线程,“抢占式”,抢时间片。

  并行:对于多核CPU来说,两个任务同时进行。

2线程的特点:

  cpu调度和执行的最小单元。

  轻量级64kb,一般不会超过128kb。

  进程中定义的变量,多个线程可以共享使用(可能会破坏数据的有效性)。

  一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。

 3线程的创建:

  1>.继承Thread类

    1.自定义的类继承Thread类;

     2.重写run()方法;

    3.创建线程对象;

    4.调用start()方法启动线程。

 

//自定义的类继承Thread
class DomeThread extends Thread{
        //重写run()方法
        @Override
        public void run() {
            System.out.println("这是由继承Thread的类创建的线程");
        }
    }
public class TestThread {
    public static void main(String[] args) {
        //创建线程对象
        DomeThread domeThread = new DomeThread();
        //调用start()方法启动线程
        domeThread.start();
    }
}

  2>.实现Runnable接口

    1.自定义的类实现Runnable接口;

    2.实现run()方法;

    3.创建Thread对象,在构造方法中传入Runnable对象;

    4.start()方法启动线程。

 

//自定义的类实现Runnable接口;
class DomeThread implements Runnable{
//实现run()方法;
    public void run() {
        System.out.println("这是实现Runnable接口创建的线程");
    }
}

public class TestThread {
    public static void main(String[] args) {
        //创建实现Runnable的对象
        DomeThread domeThread = new DomeThread();
        //创建Thread对象,在构造中传入Runnable对象
        Thread thread = new Thread(domeThread);
        //启动线程
        thread.start();
    }
}

  3>.使用FutureTask和Callable接口(可以获取返回值)

    1.自定义类实现Callable接口;

    2.实现call()方法;

    3.创建一个FutureTask对象,在构造方法中传入callableduix;

    4.创建Thread对象,在构造方法中传入FutureTaskduix;

    5.启动线程

    6.调用FutureTask对象的get()方法获得返回值。

 

 

 

 

  

posted @ 2017-10-17 12:40  幸福的小菜鸟  阅读(149)  评论(0编辑  收藏  举报