知识分享 – 基础知识 | 每日一练(192)

读者:给两个变量,如何找出一个带环单链表中是什么地方出现环的?

小林:一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方

读者:在IA32中一共有多少种办法从用户态跳到内核态?

小林:通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm 86等等

读者:如果只想让程序有一个实例运行,不能运行两个。像winam p一样,只能开一个窗口,怎样实现?

小林:用内存映射或全局原子(互斥变量)、查找窗口句柄..

FindW indow,互斥,写标志到文件或注册表,共享内存。

读者:网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?

小林:进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。

线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

两者都可以提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SM P机器上运行,而进程则可以跨机器迁移。

正文完