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

简介:

说明了线程的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 
相关文章
|
2月前
|
存储 Rust 安全
Rust中的线程基础:创建与管理
本文将深入探讨Rust中的线程基础,包括线程的创建、同步与通信机制,以及Rust提供的线程管理工具。通过理解这些概念,读者将能够更好地利用Rust的并发特性,编写高效且安全的多线程程序。
|
3月前
|
Java
Socket网络编程练习题五:客户端多用户上传文件(多线程版)并使用线程池管理线程
Socket网络编程练习题五:客户端多用户上传文件(多线程版)并使用线程池管理线程
|
1月前
|
Python
如何在Python中创建和管理线程?
如何在Python中创建和管理线程?
21 6
|
5月前
|
Java 调度 C++
2 线程基础知识复习
2 线程基础知识复习
|
5月前
|
Java 程序员 调度
【Java之家-编程的衣柜】线程的基础知识及线程与进程的联系
【Java之家-编程的衣柜】线程的基础知识及线程与进程的联系
36 0
|
9月前
|
缓存 Java 程序员
【Java基础】线程相关基础知识
cpu核心数指cpu 内核数量,如双核、四核、八核。 cpu线程数是一种逻辑的概念,就是模拟出的cpu核心数,
|
11月前
|
安全 Java 调度
【并发编程】线程的基础知识篇
【并发编程】线程的基础知识篇
|
11月前
|
安全 Unix Linux
【Linux】线程基础知识
. 线程概念 线程(thread),是进程中的一条执行流,是被系统独立调度和分派的基本单位。一个标准的线程由线程ID、当前指令指针、寄存器集合和堆栈组成,此外一个线程可与同属一个进程组的其
|
11月前
|
缓存 安全 Java
线程基础知识总结
@[toc] 1. 认识线程(Thread) 1.1 概念 1.2 创建线程 1.2.1 方法1 继承Thread类 1.2.2 方法2 实现Runnable接口 1.2.3 实现 Callable 接口,使用 FutureTask 接收线程返回值 1.2.4 对比上面两种方法 2. Thread类及常见方法 2.1 Thread的常见构造方法 2.2 Thread的几个常见属性 2.3 启动一个线程-start() 2.4 中断一个线程 2.5 等待一个线程-join() 2.6 获取当前线程的引用 2.7 休眠当前线程 3. 线程的状态 3.1 线程的所有状态 3.2 线程各状态之间的转移
36 0
|
数据采集 存储 Java
Python线程的创建、执行和管理以及注意事项
Python提供了多种方法来创建、执行和管理线程,并且需要注意线程安全性和性能方面的问题。在选择方法时,需要考虑具体需求和场景。例如用”汽车”和“冰淇淋”作为关键词对B站进行搜索,将返回的视频标题进行采集整理并写入数据库,同时计算数据总量,以此进行热点事件分析
108 0

相关实验场景

更多