专栏首页爱明依java 线程总结(一)

java 线程总结(一)

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JVM-concurrent-HashSet-problem Java 并发问题

    上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件。 心中暗道不好,因为监控系统从来不会告诉我应用完美无 bug,其实系统挺猥琐。 打开邮件...

    爱明依
  • java 内存模型的基础

    1.1 .1 并发编程模型的两个关键问题 a:线程之间如何通信(交换信息) b :线程之间如何同步 在命令式编程中,线程之间的通信机制有两种:共享...

    爱明依
  • Java 并发编程 多线程的交互模式

    多线程的开发难度远远高于单线程,在多线程开发中,我们需要处理线程间的通信,需要对线程并发做控制,需要做好线程间的协调工作。这里说的多线程指的是单进程内的多线程。...

    爱明依
  • 阿里大佬带你,深入理解线程池底层原理

    在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。 因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处...

    李红
  • Java并发技术总结之二——ThreadLocal

    ThreadLocal 用来保证规避多线程访问线程不安全的情况,每个线程访问自己的副本变量,这样就避免了对资源的抢占导致数据不一致的问题。

    剑影啸清寒
  • 线程池

    不光是线程池,池化思想在诸多地方有着很好的应用,比如对象池、连接池等等。。一般运用池化思想的都是一些比较消耗系统资源的操作,通过池化,可以降低内存消耗,并且可以...

    AlbertZhang
  • 面试官:Java线程池了解?如果你还回答不好,那还不赶快收藏!

    本文将根据面试中常被问到的 Java线程池 展开抽丝剥茧的解析,这个问题可以说是百分之百会在Java程序员面试中被问到,因为在工作中这个需求实在是太普遍了。Ja...

    捡田螺的小男孩
  • 操作系统概念学习笔记 9 线程

    线程是CPU使用的基本单元,它由线程ID、程序计数器、寄存器集合和栈组成。它与属于统一进程的其他线程共享代码段、数据段和其他操作系统资源。

    种花家的奋斗兔
  • 面试官:怎样去运用线程池?工作中如何使用?

    工作中,我们有时候需要实现一些耗时的任务。比如:将 Word 转换成 PDF 存储的需求。

    业余草
  • 【Java线程】“打工人”初识线程池及自定义线程池实战

    聊一下为什么要使用线程池? 程序的运行本质,就是通过使用系统资源(CPU、内存、网络、磁盘等等)来完成信息的处理,比如在JVM中创建一个对象实例需要消耗CPU...

    沁溪源

扫码关注云+社区

领取腾讯云代金券