process vs thread

process vs thread

http://blog.csdn.net/mishifangxiangdefeng/article/details/7588727

6.进程与线程的区别:系统调度是对进程还是线程,线程与进程共享的内存空间、公共地址空间等;

A.操作系统只调度进程,不调度线程

B.线程共享内存地址空间,进程不共享

C.线程间可共享内存数据,但进程不可以

D.进程可以通过IPC通信,但线程不可以
7.内存管理:段页式管理,地址映射表是?(操作系统方面的知识也不能掉以轻心呀)

A. 每个作业或进程一张段表,一张页表

B. 每个作业或进程的每个段一张段表,一张页表

C. 每个作业或进程一张段表,每个段一张页表

D. 每个作业一张页表,每个段一张段表

多线程编程,如何安全退出线程。

比较mutex和临街区之间的区别,并说明其使用场景。

spinlock

什么是用户级线程和内核级线程?区别。

内核线程:线程切换由内核控制,切换的时候,要从用户态进入内核态,切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。
用户级线程:用户态程序自己调度线程切换,不需要内核干涉,少了进出内核态的消耗,但不能很好的利用smp。目前linux pthread大体是这么做的。

process vs thread

一个program可以由多个process,一个process可以由多个thread,其中一个是main thread。

process有独立的虚拟地址空间,一个process异常不会影响其他process

thread共享process的虚拟地址空间和所有资源,一个thread异常导致其他thread异常。

processer处理机分给thread,即真正在处理机上运行的是thread。

thread的创建,执行速度比process更快,不需要context切换,耗费资源较少,比process更lightweight

thread的好处:易于调度,并发性高,开销小。

http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html

http://blog.csdn.net/dazhong159/article/details/7896070

http://blog.csdn.net/column/details/killthreadseries.html

进程与线程的区别:

(1)调度:process作为拥有资源的基本单位,thread作为调度和分配的基本单位

(2)并发性:不仅process之间可以并发执行,同一个process的多个thread之间也可并发执行

(3)拥有资源:process是拥有资源的一个独立单位,thread不拥有系统资源,但可以访问隶属于process的资源

(4)系统开销:在创建或撤消process时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消thread时的开销。

process的基本状态及状态之间的关系

Ready<---->Running--->Blocked--->Ready

process间通信的方式?

(1)管道(pipe)及有名管道(named pipe):管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。

(2)信号(signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一致的。

(3)消息队列(message queue):消息队列是消息的链接表,它克服了上两种通信方式中信号量有限的缺点,具有写权限得进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可以从消息队列中读取信息。

(4)共享内存(shared memory):可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据得更新。这种方式需要依靠某种同步操作,如互斥锁和信号量等。

(5)信号量(semaphore):主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段。

(6)套接字(socket):这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。

thread间通信?

(1) global volatile variable

(2) message: PostMessage PostThreadMessage

thread的同步和互斥?

mutex

semaphore

critical section

进程如何同步?

http://www.cnblogs.com/sooner/tag/%E8%BF%9B%E7%A8%8B%E9%80%9A%

秒杀多线程系列

http://blog.csdn.net/dazhong159/article/details/7948327

http://blog.csdn.net/morewindows/article/details/7470936

c++多线程编程

http://blog.sina.com.cn/s/articlelist_1650383371_1_1.html

criticalsection

http://blog.163.com/ctct7833@126/blog/static/16162469020117119125560/

上一篇:http协议传输二进制数据以及对输入流(php://input)和http请求的理解


下一篇:借助Bodymovin播放svg动画