并发专题 - Day23
2022-04-03 本文已影响0人
小周爱吃瓜
java里的线程.
线程是程序运行资源分配的最小单位。
是cpu调度对的最小单位,必须依赖进程存在。
-
cpu核心和线程数的关系.
多核cpu指的是芯片多处理器,将大规模并行处理器集中到同一芯片,处理器并行执行不同进程. -
java线程最终会调用到start方法,这是native方法,最终会调用到c++层面 pthread.start(),然后回调,run只是普通方法。
用协程相当于在用户态自己完成资源的调度,这样会减少2w个时间单位。
Screen Shot 2022-04-03 at 6.45.51 PM.png-
新建start方法后进入
-
就绪 具备了执行条件,但是还没分配到cpu
-
运行 获得了cpu
-
阻塞 sleep,等待io设备,让出cpu并停止自己的运行
-
synchronized和wait对象要是同一个对象。 因为监视器要是同一个
-
hsdb可以查看jvm运行时状态
-
线程顺序执行:
join方法 -
线程优先级:
priority 1- 10,可以分配优先级,优先级大的可以分配到更多的cpu执行时间.
- 资源分配
协同式和抢占式:
java就是抢占式的.
-
线程中断 interrupt,可以通过标志位isInterrupt()来查看.
-
线程间通信:
- volatile
- synchronized
- wait notify
--
-
复习:
进程间通信:
管道:父子进程通信
信号:
消息队列:
共享内存:
套接字socket: -
如何查看上下文:
vmstat 1