![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OS
哇咔咔负负得正
这个作者很懒,什么都没留下…
展开
-
Java 创建线程的三种方式
Java 创建线程的三种方式1. 继承 Thread 类2. 实现 Runnable 接口,作为 Thread 构造函数的参数3. 实现 Callable 接口,作为 FutureTask 构造函数的参数,然后 FutureTask 作为 Thread 构造函数的参数原创 2022-09-11 18:07:36 · 228 阅读 · 0 评论 -
[双向链表&哈希] LeetCode 146. LRU 缓存
LRU 称为最近最久未使用,或者最近最少使用,页面置换算法的一种。java 实现原创 2022-09-07 21:19:30 · 206 阅读 · 0 评论 -
OS_PV操作_6.公园相亲问题
公园相亲问题某公园举行相亲大会,但要求如下:(1)每次只能从公园门进入1人(男或女);(2)-50<=男相亲人数-女相亲人数<=100。试用P、V操作描述男、女相亲人入园的并发过程。这个其实和仓库问题是一样的Semaphore male = 100;Semaphore female = 50;//代表还能进入公园的数量Semaphore mutex = 1;process_male() { while(1){ P(male); //男人准备进入 P(mutex)原创 2020-11-20 22:57:58 · 2102 阅读 · 7 评论 -
OS_PV操作_5.行人与机动车过路口问题
行人与机动车过路口问题假设有一个路口,通行交通规则如下:只要没有机动车在通过路口行人就可以通过;只有没有行人在通过路口且没有其他机动车在通过路口时该机动车才能通过。请用P、V操作描述行人和机动车通过路口的同步互斥过程。我的理解:行人有过路口的优先级大于机动车过路口的优先级;路口每次通过一辆机动车或人。没人时,机动车依次通行;有人时,车必须等全部人通过路口才能通行。int count = 0; // 记录行人数量Semaphore mutex = 1; // 保护count更新原创 2020-10-17 17:24:39 · 6483 阅读 · 6 评论 -
OS_PV操作_4.过独木桥问题
过独木桥问题某条河只有一座独木桥(东西向),以便行人过河。现在河的两边都有人要过桥,按照下面规则过桥,为了保证过桥安全,请用P、V操作分别实现正确的管理。规则:同一方向的可连续过桥,但可连续过桥人数最多为10人。某方向有人过桥时另一方向的人要等待我对这个题目的理解:一个方向的人开始过桥时,桥上最多过10个,如果桥上的人满了,那么同方向的人再想要过桥就必须等待,直到这个方向的人全部过桥,对向的人才可以过桥。(下面代码按此理解进行编码)第二种理解(有点矛盾):东西方向交替过桥,一次最多过十个。我原创 2020-10-16 11:15:32 · 8545 阅读 · 10 评论 -
OS_PV操作_3.银行业务问题
银行业务问题某银行有3个业务窗口,15个供等候办理业务的顾客做的座椅。如果没有顾客,银行职员便在业务窗口中等待顾客;当顾客到达时,若没有空椅子,顾客就离开;否则到取号机(仅有一个取号机),然后坐在空椅子上等待叫号;银行职员办理完某个顾客的业务后,如果有等待的顾客,按叫号系统按钮叫号;顾客办完业务后将直接离开。请为银行职员和顾客各编一段程序描述他们的行为。int chairs = 15; // 座位空位数int waiting = 0; // 正在等待的顾客数 Semaphore servers =原创 2020-10-13 18:52:07 · 2507 阅读 · 16 评论 -
OS_PV操作_2.利用信号量实现前驱关系
利用信号量实现前驱关系利用信号量实现下图(线上为信号量)的前趋关系,请写出P、V操作算法。//初始化信号量Semaphore d = f = i = k = l = m = n = p = s = t = 0; S1() {P(l); 运行S1; V(n);}S2() {P(i); 运行S2; V(p);}S3() {P(d); P(s); 运行S3;}S4() {P(k); P(p); 运行S4;}S5() {P(f); 运行S5;}S6() {运行S6; V(t); V(s); V原创 2020-10-11 17:59:48 · 4459 阅读 · 0 评论 -
OS_PV操作_1.仓库问题(附带 Java 代码实现)
仓库问题有一个仓库,可以存放 A 和 B 两种产品,仓库的存储空间足够大,但要求: (1)一次只能存入一种产品(A 或 B); (2)-N < (A 产品数量-B 产品数量) < M。 其中,N 和 M 是正整数。试用“存放 A”和“存放 B”以及 P、V 操作描述产品 A 与 产品 B 的入库过程。Semaphore Sa = M - 1;Semaphore Sb = N - 1;//代表还能存入的数量Semaphore mutex = 1;process_A() { whi原创 2020-10-11 17:20:46 · 4956 阅读 · 9 评论