这里的线程和操作系统构造非常新,
想知道是否有人可以帮我解决一些问题。
在 C 中实现线程时,您可以访问 POSIX 线程,POSIX 线程是操作系统级线程吗?在内核级别运行?
而在Java中创建和运行线程时,这些是用户级线程吗?我们对 Java 中操作系统级别的构造有什么级别的访问权限?Java中的信号量只是在用户空间设置吗?
预先感谢您对这些问题的任何见解。
我在C++中创建了一个非常简单的链表示例来练习一些面试问题.我有一个我似乎无法理解的奇怪问题:
while( cur )
{
cout << "Index: " << indx << endl <<
"Current Add:\t" << &cur << endl <<
"Value:\t\t" << cur->val << endl <<
"Next Add:\t" << &cur->next << endl <<
"Ran Add:\t" << &cur->ran << endl <<
"Ran Val:\t" << cur->ran->val << endl << endl;
cur = cur->next;
++indx;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码迭代并打印列表.它工作正常.然而.当前节点的地址始终相同.该列表包含一个int值和一个指向下一个节点的指针,以及一个指向列表中随机地址的指针.地址和值分配正确,我可以看到"下一个"地址正常.但是当它将它分配给当前节点时,它似乎总是指向相同的地址.
我唯一可以假设的是,在执行期间它会将"cur"移动到某个寄存器,因此始终显示此地址而不是内存中的位置.这有意义吗?这是正确的还是我缺少的东西?这不会影响我的实现,它只是一些我想更好理解的奇怪行为.
谢谢