JavaJava并发编程实战-可爱猪猪解读

【连载】第1章-1.4线程无处不在

2019-08-20  本文已影响1人  可爱猪猪

格言:在程序猿界混出点名堂!

《JAVA并发编程实战》解读
【连载】第1章-1.4线程无处不在

回顾:在1.3中介绍了,线程带来的风险,包括安全性问题、活跃性问题还有性能问题,这一小节讲的是线程无处不在。

每个JAVA应用程序都会使用线程。

当JVM启动后,为JVM内部任务(比如垃圾回收器)创建后台线程,并创建一个主线程来运行main方法。可以使用jstack的监控工具打印堆栈日志查看,我只写了一个main方法启动,可以看到有很多的JVM线程。

"main" #1 prio=5 os_prio=31 tid=0x00007f9f3c801800 nid=0x2803 waiting on condition [0x000070000d152000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at cn.kazz.RunOneTask.main(RunOneTask.java:8)

"VM Thread" os_prio=31 tid=0x00007f9f3c83e800 nid=0x5103 runnable 

"GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007f9f3c800800 nid=0x2007 runnable 

"GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007f9f3c81d000 nid=0x2103 runnable 

"GC task thread#2 (ParallelGC)" os_prio=31 tid=0x00007f9f3c81d800 nid=0x5403 runnable 

"GC task thread#3 (ParallelGC)" os_prio=31 tid=0x00007f9f3c81e000 nid=0x2b03 runnable 

"VM Periodic Task Thread" os_prio=31 tid=0x00007f9f3b00a000 nid=0x3a03 waiting on condition 

多数Java应用程序都是多线程

多少Java应用程序都是多线程,使用时需要对应用程序的状态(比如内存变量)的访问进行协同
而且一些框架引入了并发性时,通常并发性不仅局限于框架代码。比如下面提到的这些。

知识点

  1. 了解这些多线程的框架来体会多线程可能带来的非安全性问题。

喜欢连载可关注简书或者微信公众号
简书专题:Java并发编程实战-可爱猪猪解读
https://www.jianshu.com/c/ac717321a386
微信公众号:逗哥聊IT

上一篇 下一篇

猜你喜欢

热点阅读