进程线程面试笔试题 转
1. 线程与进程的区别和联系? 线程是否具有相同的堆栈? dll是否有独立的堆栈?
2. sleep()和wait()有什么区别?
3. 线程的建立、销毁、线程锁等。要求如下:
a. 主线程创建两个子线程,一个每次往缓冲区里写入一个整数,一个每次从缓冲区里读出一个整数。
b. 要确保当前缓冲区无数据时不能读,并且读写不能同时进行。
——————————————
请问这个缓冲区要设置为正好存放一个整数的大小?还是整数大小的多倍?
如果正好是一个整数的大小的话,那么2个线程互斥读写这个缓冲区和用2个函数依次读写这个缓冲区是不是一样的速度(线程没有起到作用)?
4. 谈谈COM的线程模型。然后讨论进程内/外组件的差别。
5. 线程的同步有几种方法。
6. 程序什么时候应该使用线程,什么时候单线程效率高。
7. 有两个线程
void producer()
{
while(1)
{
GeneratePacket();
PutPacketIntoBuffer();
Signal(customer);
}
}
void customer()
{
while(1)
{
WaitForSignal();
if(PacketInBuffer>10)
{
ReadAllPackets();
ProcessPackets();
}
}
}
(1)有没有其他方法可以提高程序的性能
(2)可不可以不使用信号之类的机制来实现上述的功能
8. 以下多线程对int型变量x的操作,哪几个需要进行同步:
A. x=y; B. x++; C. ++x; D. x=1;
9. 同一进程下的线程可以共享以下
A. stack B. data section
C. register set D. thread ID
10. 多任务系统分为那两类?
11. 以下手段哪些可用于进程间的同步和互斥。A. 信号量与PV原语。 B. B树。C. 进程上下文。D。临界区加锁 。
12. 给出进程间通信的方法。
13. linux内核守护进程的编程方法。
14. Unix后台进程的实现。
15. 编写一unix程序,防止僵尸进程的出现。
16. What is MUTEX ?
17. What is Concurrency? Expain with example Deadlock and Starvation.