JAVA多线程系列-3-包&类等名词解释

2016/05/21 Java

本章是编程基础,简述一下,多线程编程常用到得包、类等~ 可用于多线程的快速查阅

Java多线程经过2个重要的发展阶段,第一阶段是JDK5.0以前,第二阶段是JDK5.0以后。 JDK5.0引入java.util.concurrent包,极大地扩充了多线程的功能。

多线程相关类解释

线程创建

java.lang.Runnable

接口:主要用于创建新线程,通过实例化子类,创建新线程。继承需要覆盖run()方法。

java.lang.Thread

类:主要用于创建新线程,及静态方法,是Runnable接口的子类,通常使用.sleep()等静态方法。

Callable

模板类:主要用于创建带返回值的的线程,返回值用Future 接收

ExecutorService&ScheduledExecutorService

类:主要用于创建线程池&周期性调度的线程池,使用Executors.new*()方法创建。

线程调度

线程状态改变6大函数:

  • wait()/当前线程等待,直到有其他线程调用notify*()
  • jion()/将调用线程加到环境线程中,暂停环境线程的执行,直到调用线程执行完毕
  • yeild()/静态方法 暂停当前线程执行,并重新选择执行的线程
  • notify()/唤醒一个后台线程
  • notifyAll()/唤醒所有后台等待的线程
  • sleep()/静态方法,当前线程延时n个单位(ms)

线程互斥&同步

synchronized

Java 关键字:互斥锁,通常用于给代码段,或者方法加锁,确保互斥访问。

  • 静态方法使用类锁,静态方法之间互斥;
  • 非静态方法使用对象锁,非静态方法之间互斥。
  • 但是静态方法与非静态方法之间不互斥!

Lock&ReentrantLock

类:互斥锁,使用lock.lock();加锁,使用lock.unlock();放锁,常用于互斥操作。

Semaphore

类:信号量,定时初始值,使用signal.acquire();获得一个信号量,使用signal.release();方法释放一个信号量。

其他

java.util.concurrent;

包:(JDK5.0引入)主要包含线程池、有返回值的线程、锁对象、信号量、阻塞队列、阻塞栈、条件变量、原子量、障碍器等。

上一章: 绪论-Java多线程理论基础

下一章: 线程创建的4种方式

Search

    Post Directory