小编Zep*_*hyr的帖子

Monitor vs Mutex

我读到互斥锁是一个值为1(二进制信号量)的信号量,用于强制互斥.

我读到了这个链接 Semaphore vs. Monitors - 有什么区别? 这表明监视器有助于实现互斥.

任何人都可以告诉我互斥和监视器之间的区别,因为两者实际上都在做同样的事情

multithreading operating-system mutex semaphore monitor

27
推荐指数
3
解决办法
1万
查看次数

虚拟索引的物理标记的缓存

我无法完全掌握VIPT缓存中的同义词或别名的概念。

将地址拆分为:

在此处输入图片说明

在这里,假设我们有2个页面,其中不同的VA映射到相同的物理地址(或帧号)。

VA的您做生意部分(位13-39),它们是不同的被转换到PA的PFN(位12-35)和PFN保持相同两者的VA的,因为它们被映射到相同的物理帧。

现在,两个VA的pageoffset部分(第0-13位)与它们要从特定帧访问的数据相同,没有相同。

由于两个VA的pageoffset部分相同,因此位(5-13)也将相同,因此索引或设置no相同,因此不应混叠,因为只有单个set或index no被映射到物理帧没有。

如图所示,第12位如何负责混叠?我不明白。

如果有人可以在地址的帮助下给出例子,那就太好了。

谢谢 。

caching operating-system cpu-architecture cpu-cache

5
推荐指数
1
解决办法
941
查看次数

块结构变量的内存分配

for(int i=0;i<10;i++)
{
  int x=0;
  printf("%d",x);
   {
     int x=10;
     printf("%d",x);
   }
  printf("%d",x);
}
Run Code Online (Sandbox Code Playgroud)

在这里我想知道变量x的内存是否会被分配两次,或者是在退出第二个块之后是否重置的值,并且内存只分配一次(对于x)?

c c++

4
推荐指数
1
解决办法
155
查看次数

for循环内递归函数的时间复杂度

如果我们有一个函数:-

int x=0;

int fun(int n)
{
    if(n==0) 
        return 1;

    for(int i=0; i<n;i++)
        x += fun(i);
}
Run Code Online (Sandbox Code Playgroud)

据我所知,时间复杂度可以计算为:-

T(n) = T(n-1) + T(n-2) +...+ T(0).
T(n) = nT(n-1).

T(n) = O(n!).
Run Code Online (Sandbox Code Playgroud)

我对么?

big-o time-complexity

3
推荐指数
2
解决办法
9784
查看次数

COUNT(*)有和没有GROUP BY,没有匹配的行

考虑具有以下记录的关系表(Balance,Customer):

数据库表的截图

现在我在这里尝试了这两个查询:

-- Query 1:
select A.Customer, count(B.Customer)
from account A, account B
where A.balance < B.balance
group by A.Customer;

-- Query 2:
select A.Customer, count(B.Customer)
from account A, account B
where A.balance < B.balance;
Run Code Online (Sandbox Code Playgroud)

第一个查询没有输出.使用第二个查询,我得到一个count = 0的输出.

在这两种情况下,没有满足where条款中条件的行,因此不返回任何行.那么为什么count函数仅在第二种情况下给出输出?

mysql sql

3
推荐指数
1
解决办法
588
查看次数

C中的数组指针

#include <stdio.h>

void main()
{
 int a[]={1,2,3,4};

 printf("%u %u ",a ,&a);           //a
 printf("%d %d ", *a ,*&a);        //b
}
Run Code Online (Sandbox Code Playgroud)

在ath线的输出a&a是相同的地址,但在第b行*&a不给我答案1.

我知道这&a意味着指向整数数组,但由于地址相同,它应该打印1正确吗?

c arrays pointers

2
推荐指数
1
解决办法
108
查看次数

BCNF 和 4NF 属性

我读到一篇声明“BCNF 中至少有一个简单候选键的关系 R 也在 4NF 中”

我不认为这总是正确的,但我无法证明这一点。

有人可以帮忙吗?

database rdbms database-normalization bcnf

2
推荐指数
1
解决办法
2702
查看次数

非阻塞系统调用和模式切换

假设我们调用异步 IO 的系统调用。调用系统调用时,模式从用户态转变为内核态。调用后,模式应立即更改回用户模式,以便用户应用程序可以进一步执行(因为它是非阻塞的)。

现在,如果模式更改为用户模式,那么当模式从内核更改为用户模式时,内核将如何处理 IO?内核会在用户模式下执行异步IO吗?

unix operating-system kernel asynchronous system-calls

2
推荐指数
1
解决办法
2860
查看次数

抽象类和多重继承

我们可以通过使用抽象类来实现与接口相同的功能,那么为什么java不允许以下代码呢?

abstract class Animals
{
    public abstract void run();
}

abstract class Animals1
{
    public abstract void run1();
}

class Dog extends Animals,Animals1
{
  public void run() {System.out.println("Run method");}
  public void run1() {System.out.println("Run1 method");}
}
Run Code Online (Sandbox Code Playgroud)

我知道只使用接口可以实现多重继承,但上面的代码与接口完成的工作相同.

java abstract-class interface multiple-inheritance

1
推荐指数
1
解决办法
2万
查看次数

后缀的负数前缀

如何将负数从中缀转换为后缀?

假设我有一个表达式

a =-b-(-cd)

在某些地方,我读到您可以将诸如

a =(-b)-(-cd)

但是在这里,如果我这样做的话,我将在后缀表达式的开头得到类似“ ab-”的术语,表示ab且不正确。

我该如何转换呢?

infix-notation infix-operator postfix

1
推荐指数
1
解决办法
2527
查看次数