线程基础知识系列(二)线程的管理

简介:

说明了线程的2种创建和启动,join(),daemon线程,Callable 
任务。

本文的主要内容

  1. 线程的状态

  2. 线程的优先级

  3. sleep vs wait

  4. 线程的流程控制

  5. Interrupt

  6. yield让出你的CPU



1.线程的状态

以《线程基础知识系列(一)线程的创建和启动》这张图,是程序的运行时线程信息截图。有main线程,user Threads,daemon Threads。现在咱们把重点放在线程状态上(RUNNING,WAIT,SLEEPING...)

线程的状态有哪些?状态转换图是怎么样的?

wKiom1dvlgej-_eRAABM-qR14cc719.png

线程状态转换图

wKiom1dv1sHRmhKcAAJRalKoBdc747.png


状态信息是枚举类型,线程状态分别是:New,RUNNABLE,BLOCKED,WAITING,TIMED_WAITED,TERMINATED.

wKiom1dv14iQKzEgAAI4CDOBw0U848.png

1.1 TimedWaitThreadDemo.java ,主要演示了TIMED_WAITING状态的触发时机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package  com.threadexample.mgr;
 
import  java.util.concurrent.TimeUnit;
 
/**
  * Created by Administrator on 2016/6/26.
  */
public  class  TimedWaitThreadDemo {
     public  static 
相关文章
|
7月前
|
存储 Rust 安全
Rust中的线程基础:创建与管理
本文将深入探讨Rust中的线程基础,包括线程的创建、同步与通信机制,以及Rust提供的线程管理工具。通过理解这些概念,读者将能够更好地利用Rust的并发特性,编写高效且安全的多线程程序。
|
7月前
|
Java
Socket网络编程练习题五:客户端多用户上传文件(多线程版)并使用线程池管理线程
Socket网络编程练习题五:客户端多用户上传文件(多线程版)并使用线程池管理线程
|
6月前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
68 2
|
6月前
|
Java
Java中,有两种主要的方式来创建和管理线程:`Thread`类和`Runnable`接口。
【6月更文挑战第24天】Java创建线程有两种方式:`Thread`类和`Runnable`接口。`Thread`直接继承受限于单继承,适合简单情况;`Runnable`实现接口可多继承,利于资源共享和任务复用。推荐使用`Runnable`以提高灵活性。启动线程需调用`start()`,`Thread`直接启动,`Runnable`需通过`Thread`实例启动。根据项目需求选择适当方式。
64 2
|
7月前
|
Python
如何在Python中创建和管理线程?
如何在Python中创建和管理线程?
39 6
|
7月前
|
Java 程序员 调度
【JavaEE多线程】理解和管理线程生命周期
【JavaEE多线程】理解和管理线程生命周期
51 0
|
7月前
|
存储 算法 Linux
【C++ 线程管理】深入探索 Linux 系统:如何有效获取和管理线程信息
【C++ 线程管理】深入探索 Linux 系统:如何有效获取和管理线程信息
157 0
|
7月前
|
安全 Java Unix
【C++ 包裹类 std::thread】探索C++11 std::thread:如何使用它来创建、销毁和管理线程
【C++ 包裹类 std::thread】探索C++11 std::thread:如何使用它来创建、销毁和管理线程
263 0
|
Java 调度 C++
2 线程基础知识复习
2 线程基础知识复习
|
Java 程序员 调度
【Java之家-编程的衣柜】线程的基础知识及线程与进程的联系
【Java之家-编程的衣柜】线程的基础知识及线程与进程的联系
66 0