Java多线程基础 之基本概念(一)

1.线程和进程的区别

   进程——资源分配的最小单位

   线程——程序执行的最小单位

2.多线程实现的四种方式

  2.1继承Thread类创建线程

  2.2实现Runnable接口创建线程

  2.3实现Callable接口,通过FutureTask包来创建线程

  2.4通过线程池创建线程

注:使用ExecutorService、Callable、Future实现有返回结果的线程

3.多线程常用的方法

    sleep() :调用该方法,让当前的的线程暂停一段时间,让低优先级的线程得到执行的机会,也可以让同优先级、  高优先级的线程有执行的机会

    join() : 等待一个线程执行完后后,再执行下一个线程

    yield() :同sleep()一样,但不能设置暂停时间

   wait() 、notify() 、notifyAll():

   这三个 方法用于协调多个线程对共享数据的存取,所以必须在synchronized语句块内使用。synchronized关键字用于保护共享数据,阻止其他线 程对共享数据的存取。

4.多线程信息共享

synchronized:互斥锁,

 volatile关键字:禁止重排序、内存可见性

5.多线程工具类 BlockingQueue

6.Atomic类

7.门闩、Lock

 

 

   

   

   

   

  

 

你可能感兴趣的:(多线程)