如果我有一个线程被阻塞等待锁,操作系统可以重新安排该线程去做其他工作,直到锁可用吗?根据我的理解,它不能被重新安排,它只是闲置直到它能够获取锁。但这似乎效率很低。如果我们有 100 个任务提交给 ExecutorService,并且池中有 10 个线程:如果其中一个线程持有锁,而其他 9 个线程正在等待该锁,则只有持有锁的线程才能取得进展。我本以为被阻塞的线程可以暂时重新安排来运行其他一些提交的任务。
当我在 C++ 程序中创建一个新变量(例如 char)时:
char c = 'a';
Run Code Online (Sandbox Code Playgroud)
那么C++如何访问内存中的这个变量呢?我想它需要存储变量的内存位置,但这需要一个指针变量,并且需要再次访问该指针。