- 博客(8)
- 收藏
- 关注
原创 进程挂起、阻塞与睡眠的区别?
对于进程的七态模型而言,其实并没有睡眠这种状态。所以,“睡眠进程”这种说法并不存在,只是在线程这个层面有意义。对于阻塞进程,不再消耗CPU资源,但占用内存资源。释放锁与否,个人尚不清楚在进程这个层面是怎么样的,但在线程这个层面,wait线程会释放锁,而sleep不会。两种状态都不会消耗CPU资源,就绪挂起状态的进程占用内存,阻塞挂起状态的进程原来占用的内存,包括PCB,会被调到外存,所以可以认为阻塞挂起状态会释放原先占用的内存。查了一些资料,感觉区别如下:(不知道准不准确,还求大佬指点)
2023-10-16 10:05:51
310
1
转载 Java控制台程序发送Email(含javax.net.ssl.SSLHandshakeException解决方案)
含javax.net.ssl.SSLHandshakeException: No appropriate protocol解决方案
2022-07-31 23:09:31
770
原创 树的应用——使用并查集解决动态连通性问题(下篇:加权的快速合并)
上篇:树的应用——使用并查集解决动态连通性问题(含C++代码实现)(上篇:快速查找)中篇:树的应用——使用并查集解决动态连通性问题(含C++代码实现)(中篇:快速合并)第三种设计:加权快速合并 Weighting-Quick-union在(中篇:快速合并)中,我们知道,快速合并算法无论是查找还是合并,主要的时间消耗在于回溯根。如果树很深,那么回溯将会消耗大量的时间。因此,改进本算法的方向就是:使树的深度尽量小(尽量平坦),这样子无论是从哪个节点回溯到根都很快。从上图我们可以直观感受到,右边树结构
2021-11-11 19:45:03
635
原创 树的应用——使用并查集解决动态连通性问题(含C++代码实现)(中篇:快速合并)
上篇:树的应用——使用并查集解决动态连通性问题(含C++代码实现)(上篇:快速查找)第二种设计:快速合并 Quick-union在这种设计中,数据结构id[]还是一个整数类型的数组,其索引的含义与之前(上篇:快速查找)相同。但与之前有所不同的是,我们用树来表示连通分量,相互连通的对象之间存在双亲与孩子的关系。id[]中存储的值是其索引对应的对象的双亲对象的索引 (值=双亲的索引)。例如:对应于id[5]:index01234value12224“0号对象
2021-11-07 18:12:02
795
原创 树的应用——使用并查集解决动态连通性问题(含C++代码实现)(上篇:快速查找)
动态连通性问题简述动态连通性问题Dynamic Connectivity Problem给定一个包含N个对象的集合A, A={a1,a2,a3,a4,…,an}A=\{a_1,a_2,a_3,a_4,…,a_n\}A={a1,a2,a3,a4,…,an} 。解决以下三个问题:设计一种算法union(),使 aia_iai 与 aja_jaj 连通 (i,j=1,2,3,…,ni,j=1,2,3,…,ni,j=1,2,3,…,n)。示意图:设计一种数据结构(数据表示法),表
2021-10-31 23:52:13
466
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人