请问推荐一些c语言并发编程的书籍

请问推荐一些c语言并发编程的书籍,第1张

1、清华大学出版社的:跟我学 C程序设计;但书中错误不少,错误多这个特点是国内写的书的主要特点。 2、C和指针(美)。 3、C Primer Plus(第五版)中文版。 4、C程序设计语言(第2版•新版)

并发是指多个线程同时运行,比如windows就是并发的 *** 作系统。

并发以后就可以,一边听歌,一边浏览网页。即,看起来像同一时间可以干多个事情。

同步,就是一种控制策略。

就比如说,用迅雷看**。一边下载,一边播放。这个时候下载进程和播放进程,他们两个就有同步的机制,例如:只能播放视频文件中已经下载完成的部分,没有下载的不能播放。并且,如果已经下载的全部播放完了,那播放器就要等待,等到有内容的时候再继续播放。

并发怎么写:首先要把任务拆分成多个能独立执行的部分。例如:下载部分,播放部分。

然后控制好并行部分的运行机制。

#include <stdioh>

#include <timeh>int main()

{

clock_t t = clock();

/这里放入要测试速度的代码/

printf("运行时间%4f秒\n", (double)(clock() - t) / CLOCKS_PER_SEC);

return 0;

}

一、判断题(正确用T表示,错误用F表示,共5题,每题2分,共10分)

1.在多道程序系统中,只有相关的并发进程才有可能存在通信问题。A

A T

B F

2.并发问题是多处理机系统主要关注的焦点,而对但处理机系统无任何影响。B

A T

B F

3 在消息传递通信机制中,只有消息的接收者才能采用阻塞方式进行通信。B

A T

B

F

4.进程之间的直接制约关系可以归结为共享数据与交换数据。A

A T

B

F

5.消息传递通信机制提供了同步和通信功能,这些都是相互交互的进程间必须的。A

A T

B F

二、单项选择题(共10题,每题4分,共40分)

1.进程通信,是指___C__之间交换信息。

A 程序

B 模块

C 进程

D 线程

2.信箱通信是一种___B__通信方式。

A 直接

B 间接

C 低级

D

信号量

3.进程间通信是协调解决多个进程之间的约束关系,实现进程共同进展的关键技术,是多道系统中控制进程___D__执行必不可少的机制。

A 动态

B 并行

C 异步

D 并发

4.下述哪一个选项体现了原语的主要特点_A___。

A 不可分割性

B 并发性

C

共享性

D

异步性

5.缓冲区属于__B___。

A

高级通信

B 低级通信

C 直接通信

D 间接通信

6.消息传递系统中,进程间的数据交换以消息为单位,用户直接利用系统提供的一组__C___来实现通信。

A 程序

B 线程

C

原语(通信命令)

D

管道

7.管道通信中,管道由OS核心的缓冲区来实现,信息传递的方向是__A___的。

A 单向

B

双向

C 既可单向也可双向

D

不确定

8.要进行管道通信,首先建立需要通信的___D__,然后在它们之间建立一个通信管道。

A 程序

B

进程

C 信箱

D 管道

9.缓冲区通信是一种___C__通信方式。

A 直接通信

B 间接通信

C

低级通信

D

信号量

10.引入缓冲的主要目的是__C___。

A

节省内存

B 提高CPU的利用率

C 改善CPU和I/O设备之间速度不匹配的情况

D 提高I/O设备的效率

三、填空题(共5题,每题4分,共20分)

1.进程通信分低级通信和高级通信。将只能传递状态和控制信息的通信称为_____,而将进程间交换较多信息的通信称为_____。

答:低级通信,高级通信

2.进程间通信方式包括直接通信方式和间接通信方式。其中,_____借助于收发双方进程之外的共享数据结构作为通信中转。

答:信箱通信

3.进程间通信的类型可分为共享存储器通信、____通信以及____通信等三大类。

答:消息传递,管道

4.为了使诸进程间能协调地进行通信,必须对进程通信的_____双方进行进程同步。

答:收、发

5.管道通信中的管道是一条在进程间以_____传送的通信通道。

答:字节流方式

四、 简答题(共3题,每题10分,共30分)

1.什么是进程通信?

答:进程通信是指两个并行进程可以通过互相发送消息进行合作,消息是通过消息缓冲而在进程之间相互传递的。

2.试比较进程间的低级与高级通信工具?

答:用户用低级通信工具实现进程通信很不方便,效率低,通信对用户不透明,所有 *** 作都必须由程序员来实现,而高级通信工具弥补了这些缺陷,用户直接利用 *** 作系统提供的一组通信命令,高效地传送大量的数据。

3.进程通信的类型有哪几种?它们分别适合于何种场合?

答:共享存储器:在内存种分配一片空间作为共享存储区。需要进行通信的进程把它附加到自己的地址空间中,不需要时则把它取消。 管道文件:它是连接两个命令的一个打开文件。一个命令向该文件中写入数据,为写者;另一个命令从该文件中读出数据,为读者。 消息传递:它以消息为单位在进程间进行数据交换。

这个一般不能做到。

一般的C语言编译器会限制程序的资源使用量(如CPU不超过40%),超过设定时,编译出来的程序会提示“未响应”而停止工作,不会造成电脑满负荷工作的情况。

实现满负荷工作可以用一些拷机软件,比如Super PI,来测试处理器的性能。

但对于时间的记录,可以运用<timeh>的函数来实现,用法如下:

time_t start,end;  

start =time(NULL);//or time(&start);  

//计时中

end =time(NULL);  

printf("time=%d\n",difftime(end,start));

这里的输出单位为秒。如要精确到毫秒的计时,可以调用clock():

clock_t start,end;  

start = clock();  

//计时中 

end = clock();  

printf("time=%f\n",(double)end-start)/CLK_TCK);

这里end和start得到的是计算机时钟的tick数,换算成毫秒需要除以常数CLK_TCK,换算成秒除以常数CLK_TCKCLOCKS_PER_SEC。

以上就是关于请问推荐一些c语言并发编程的书籍全部的内容,包括:请问推荐一些c语言并发编程的书籍、linux c 多线程并发中并发具体是什么意思,并发和同步什么关系,代码怎样写才算并发、编写一个C语言的小程序,如何测试它的运行速度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10168084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存