关于java:多线程

27次阅读

共计 1227 个字符,预计需要花费 4 分钟才能阅读完成。

1. 如果程序只有一条执行门路(main),那么该程序就是单线程程序。
2. 如果程序有多条执行门路,那么该程序就是多线程程序。

3. 线程是依赖过程,而存在的。
4. 过程:就是正在运行的程序。
5. 多过程的意义:进步 CPU 的使用率。
每一个过程都有本人的内存空间和系统资源。

6. 线程是程序的执行单元,是 CPU 调度的根本单位
7. 多线程的意义:是为了进步应用程序的使用率。有更高的机率抢到 CPU 的执行权。
8. 线程的执行有随机性。(人不会晓得,CPU 调度将要调度的是哪个线程)

9. 并行:逻辑上同时产生,在某一个时间段内,同时执行多个程序。
(多个 CPU,多个工作,一个 CPU 执行一个工作,多个 CPU 同时执行)
10. 并发:物理上同时产生,在某一个工夫点上,同时执行多个程序。
(一个 CPU,多个工作)并发是多个线程被(一个)CPU 轮流切换着执行

11.Java 程序的运行原理:
由 java 命令启动 JVM,JVM 启动就相当于启动了一个过程(操作系统 windows 层面看),
接着由该过程创立一个主线程去调用 main 办法。

思考题:jvm 虚拟机的启动是单线程的还是多线程的?
多线程
起因是:垃圾回收线程也要先启动,否则很容易呈现内存溢出。
当初的垃圾回收线程加上后面的主线程,起码启动了两个线程,所以,jvm 的启动其实是多线程的。
12.java 是不能间接调用零碎性能的(须要应用 C /C++ 语言)。
过程是由零碎创立的,所以咱们应该去调用零碎性能创立一个过程(C/C++ 语言实现)


13.run() 与 start()
间接调用 run()办法,成果就是单线程的成果。相当于一个一般的办法。
调用 start()办法:首先启动线程,而后去调用该线程的 run()办法。
想要启动几个线程,就须要创立几个线程对象。对象.start()
14. 写在 run()办法中的代码能力被线程执行。
应用多线程的一个重要起因是:有些代码的执行工夫是比拟耗时的
获取以后正在执行的线程对象:Thread.currentThread();





15. 调度线程:java 应用的是抢占式调度模型。
优先级高的线程优先获取 CPU 的工夫片



16. 线程的退出 —join() 期待以后线程完结,再执行其余线程

17. 线程的礼让 —yeild() 办法


18. 设置守护线程:setDaemon)(boolean on)
将该线程标记为守护线程或用户线程
当正在运行的线程都是守护 线程时,Java 虚拟机退出。
该办法必须 在启动线程前调用。

19. 线程的进行 stop()与中断 interrupt()



如果线程在调用 [Object] 类的 wait()、wait(long) 或 wait(long, int) 办法,或者该类的 join()、join(long)、join(long, int)、sleep(long) 或 sleep(long, int)办法过程中碰壁,则其中断状态将被革除,它还将收到一个 InterruptedException
20. 线程的生命周期:执行资格与执行权
新建 就绪 运行 死亡 阻塞

正文完
 0