首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java 线程总结(一)

1 Java程序天生就是多线程程序

代码语言:javascript
复制
public class MultiThread{
public static void main(String[] args) {
// 获取Java线程管理MXBean
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
// 不需要获取同步的monitor和synchronizer信息,仅获取线程和线程堆栈信息
ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);
// 遍历线程信息,仅打印线程ID和线程名称信息
for (ThreadInfo threadInfo : threadInfos) {
System.out.println("[" + threadInfo.getThreadId() + "] " + threadInfo.
getThreadName());
}
}
}

一个Java程序的运行不仅仅是main()方法的运行,而是main线程和多个其他线 程的同时运行。

2 使用多线程原因

1 多处理器核心;一个线程只能运行在一个处理器上 2 更快的响应时间

3 Java线程优先级

1Java线程中,使用整型成员变量:priority来控制优先级,优先级的范围从1-10 ,在线程构建的时间可以通过 setPriority(int)来设置优先级,默认优先级是5.优先级高的线程分配的时间片药多余优先级低的线程。 2 程序的正确性不能依赖线程的优先级,不同的JVM环境以及操作系统的不同,线程规划回存在差异 有的操作系统回忽略线程优先级。

4 线程的状态

Java线程在整个生命周期内共会存在6种不同的状态。在给定的一个时刻,线程只能处于一种状态。

1 初始状态-线程被构建 2 运行状态 3阻塞状态 4 等待状态 5 超时灯带状态 6终止状态

上图可以看出,线程创建之后,掉哟个start() 方法开始运行。当县城执行wait() 方法之后 进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能回到运行状态。超时等待状态实在等待状态的基础上加了超时限制,也就是超时时间到达了就会返回云翔状态。线程调用同步方法时,在没有获取到锁的情况下,会进入到阻塞状态。

下一篇
举报
领券