前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 线程总结(一)

java 线程总结(一)

作者头像
爱明依
发布2019-03-12 15:50:12
3680
发布2019-03-12 15:50:12
举报
文章被收录于专栏:爱明依爱明依

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() 方法之后 进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能回到运行状态。超时等待状态实在等待状态的基础上加了超时限制,也就是超时时间到达了就会返回云翔状态。线程调用同步方法时,在没有获取到锁的情况下,会进入到阻塞状态。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年03月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Java程序天生就是多线程程序
  • 2 使用多线程原因
  • 3 Java线程优先级
  • 4 线程的状态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档