没有合适的资源?快使用搜索试试~ 我知道了~
1. 工作线程数是不是设置的越大越好? 2. 调用sleep()函数的时候,线程是否一直占用CPU? 3. synchronized关键字可用于哪些地方 4. java中wait和sleep方法的不同 5. 如果CPU是单核,设置多线程有意义么,能提高并发性能么? 6. 分析并发问题时常用的命令 7. 线程池的核心组成部分及其运行机制 看过文章,你就会对此了解得更加透彻
资源推荐
资源详情
资源评论
引导问题
1. 工作线程数是不是设置的越大越好?
2. 调用sleep()函数的时候,线程是否一直占用CPU?
3. synchronized关键字可用于哪些地方
4. java中wait和sleep方法的不同
5. 如果CPU是单核,设置多线程有意义么,能提高并发性能么?
6. 分析并发问题时常用的命令
7. 线程池的核心组成部分及其运行机制
一、进程与线程
进程:是系统进行分配和管理资源的基本单位.
进程状态
运行态:该进程正在执行。
就绪态:进程已经做好了准备,只要有机会就开始执行。
阻塞态(等待态):进程在某些事情发生前不能执行,等待阻塞进程的事件完成。
新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是进程控
制块已经创建但是还没有加载到内存中的进程。
退出态:操作系统从可执行进程组中释放出的进程,或由于自身或某种原因停止运行。
进程查看
cmd :进入控制台
jps :windows查看进程号
jstack :+进程号查看栈内存
jconsloe :jdk图形进程查看
线程:进程的一个执行单元,是进程内调度的实体、是CPU调度和分派的基本单位,是比进程更小
的独立运行的基本单位。线程也被称为轻量级进程,线程是程序执行的最小单位。
初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
运行(RUNNABLE):处于可运行状态的线程正在JVM中执行,但它可能正在等待来自操作系统的
其他资源,例如处理器。
阻塞(BLOCKED):线程阻塞于synchronized锁,等待获取synchronized锁的状态。
等待(WAITING):Object.wait()、join()、 LockSupport.park(),进入该状态的线程需要等待其
他线程做出一些特定动作(通知或中断)。
超时等待(TIME_WAITING):Object.wait(long)、Thread.join()、
LockSupport.parkNanos()、LockSupport.parkUntil,该状态不同于WAITING,它可以在指
定的时间内自行返回。
终止(TERMINATED):表示该线程已经执行完毕。
一个程序至少一个进程,一个进程至少一个线程。
二、线程安全
死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻
塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,
这些永远在互相等待的进程称为死锁进程
不安全的线程
package com.example.demo;
//死锁例子
public class TestDeadLockApp {
private static final Object HAIR_A = new Object();
private static final Object HAIR_B = new Object();
public static void main(String[] args) {
new Thread(()->{
synchronized (HAIR_A) {
try {
Thread.sleep(50L);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (HAIR_B) {
System.out.println("A成功的抓住B的头发");
}
}
}).start();
new Thread(()->{
synchronized (HAIR_B) {
synchronized (HAIR_A) {
System.out.println("B成功抓到A的头发");
}
}
}).start();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
剩余15页未读,继续阅读
资源评论
littleStone97
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- #P0015. 全排列 超级简单
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功