首页 > 代码库 > Java线程

Java线程

Java对多线程编程提供了内置支持。

多线程程序包含同时运行的两个或更多个部分,这种程序的每一部分被称为一个线程,并且每个线程定义了单独的执行路径,因此多线程是特殊形式的多任务处理。

多任务处理有两种不同的类型:

  基于进程的多任务处理就是允许计算机同时运行两个或者更多个程序的特性。在基于进程的多任务处理中,程序是调度程序能够的最小代码单元。

  基于线程的多任务处理就是允许一个程序可以同时运行两个或者更多个任务。基于线程的多任务环境中,最小的可调度代码单元是线程。

  因此基于进程的多任务处理“大局”,而基于线程的多任务处理“细节”。

进程是重量级任务,线程是轻量级任务,所以线程占用的资源比进程小。

多线程和单线程:

  单线程系统使用一种称为轮询事件循环的方法,在这个模型中,单个线程在一个无线循环的控制中运行,轮询一个事件队列以决定下一步做什么。一个轮询返回一个信号。在这个事件处理返回之前,程序不能执行任何其他工作。

  多线程消除了主循环/轮询机制。可以暂停一个线程而不会停止程序的其他部分。多线程允许当前激活的循环在两帧之间休眠,而不会造成系统暂停。当Java程序中的线程阻塞时,只有被阻塞的线程会暂停,所有其他线程仍将继续运行。

线程有多种状态:

  线程处于运行(running)状态,只要获得C[U时间就准备运行。

  运行的线程可以被挂起(suspended),这会临时停止线程的活动。

  挂起的线程可以被恢复(resumed),从而允许线程从停止处恢复执行。

  当等待资源时,线程会被阻塞(blocked)。

  在任何时候都可以终止线程,这会立即停止线程的执行(线程一旦终止,就不能被恢复)

线程优先级:

线程同步:

Java的多线程系统是基于Thread类、Thread类的方法及其伴随接口Runnable而构建的。

 

Java线程