标签: operating-system

为什么这个小型Java程序会重启MacOS?

代码如下

Set<Thread> threads = new HashSet<>();

Runnable r = () -> {
    try {
        Thread.sleep(Long.MAX_VALUE);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
};

for (int i = 0; i < 20000; i++) {
    Thread t = new Thread(r);
    threads.add(t);
    t.start();
    if (i % 100 == 0) {
        System.out.println(i);
    }
    Thread.sleep(2);
}
Run Code Online (Sandbox Code Playgroud)

执行时,我开始看到像这样的值

0
100
200
300
Run Code Online (Sandbox Code Playgroud)

正如所料,直到我看到:

3900
4000
Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Thread.java:717)
    at App.main(scratch.java:24)
Java HotSpot(TM) 64-Bit …
Run Code Online (Sandbox Code Playgroud)

java macos multithreading operating-system

48
推荐指数
2
解决办法
1166
查看次数

何时需要一个条件变量,是不是一个互斥量?

我确定互斥是不够的,这就是条件变量概念存在的原因; 但它打败了我,当一个条件变量必不可少时,我无法用一个具体的场景来说服自己.

条件变量,互斥锁和锁定问题的接受答案之间的区别是条件变量是a

锁定"信号"机制.当线程需要等待资源变得可用时使用它.线程可以在CV上"等待",然后资源生成器可以"发出信号"变量,在这种情况下,等待CV的线程会得到通知并可以继续执行

我感到困惑的是,一个线程也可以在互斥锁上等待,当它被发出信号时,只是意味着该变量现在可用,为什么我需要一个条件变量?

PS:此外,无论如何,需要一个互斥锁来保护条件变量,当我的视力更加偏向于看不到条件变量的目的时.

multithreading synchronization operating-system mutex condition-variable

47
推荐指数
4
解决办法
3万
查看次数

操作系统如何"制造"?

创建操作系统似乎是一个庞大的项目.怎么会有人开始?

例如,当我将Ubuntu弹出到我的驱动器中时,我的计算机如何才能运行它? (我想,这是我真正想知道的.)

或者,从另一个角度来看,磁盘上可能存在的字节数最少,仍然可以作为操作系统"运行"?

(我很抱歉,如果这是模糊的.我只是不知道这个主题,所以我不能非常具体.我假装知道关于计算机如何工作的相当数量,但我对这个主题完全无能为力. )

operating-system osdev low-level

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

Mac OS X和BSD有多紧密相关?

我读到Mac OS X和bsd是相关的.他们有多紧密相关.可以在BSD上调整和安装Mac OS X软件吗?

unix macos operating-system kernel linux-kernel

46
推荐指数
4
解决办法
5万
查看次数

检测R中的操作系统(例如,用于自适应.Rprofile文件)

我想知道如何自动检测R中的操作系统,例如将内容放在.Rprofile中.

operating-system r

46
推荐指数
4
解决办法
7676
查看次数

除了init之外,为什么Linux设备驱动程序中需要探测方法?

在linux内核中,probe()驱动程序提供的方法是做什么的?它与驱动程序的init功能有何不同,即为什么不能probe()在驱动程序的init功能中执行功能操作?

linux operating-system linux-kernel

46
推荐指数
3
解决办法
6万
查看次数

使用python运行windows shell命令

我们如何使用Python与OS shell进行交互?我想通过python运行windows cmd命令.如何实现?

python windows shell operating-system

46
推荐指数
5
解决办法
16万
查看次数

如何卸载Windows服务并删除其文件而不重新启动

我当前的项目涉及部署作为Windows服务运行的升级后的.exe文件.为了用新版本覆盖现有的.exe,我目前需要:

  1. 停止服务
  2. 卸载该服务
  3. 重新启动系统(因此Windows释放它对文件的保留)
  4. 部署新的.exe
  5. 重新安装该服务
  6. 启动升级的服务.

我想避免重启,这样就可以完全编写脚本/自动升级.

有什么办法可以避免重启吗?也许一个命令行工具会迫使Windows放弃它对旧的.exe的死亡控制?

windows filesystems scripting operating-system windows-services

45
推荐指数
3
解决办法
11万
查看次数

内核和用户线程之间的关系

内核和用户线程之间是否存在关系?

一些操作系统教科书称" 一个(多个)用户线程映射到一个(多个)内核线程".这是什么地图意思吗?

operating-system kernel

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

谁决定任何数据类型或结构的大小(取决于32位还是64位)?

谁决定任何数据类型或结构的大小(取决于32位还是64位)?编译器还是处理器?例如,sizeof(int)32位系统是4个字节,而64位系统是8个字节.

我还读到sizeof(int)使用32位和64位编译器编译时的4个字节.

假设我的CPU能为64位应用程序,谁在决定数据的大小起到主要作用同时运行32位和编译器或处理器

c c++ linux compiler-construction operating-system

44
推荐指数
4
解决办法
4542
查看次数